mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-05-09 14:28:27 +00:00
external http proxy support
This commit is contained in:
parent
0db6b1861a
commit
d54991da35
@ -10,7 +10,9 @@ var http = require("http"),
|
||||
Buffer = require('buffer').Buffer,
|
||||
util = require("./util"),
|
||||
Stream = require("stream"),
|
||||
httpsServerMgr = require("./httpsServerMgr");
|
||||
httpsServerMgr = require("./httpsServerMgr"),
|
||||
HttpProxyAgent = require("http-proxy-agent"),
|
||||
HttpsProxyAgent= require("https-proxy-agent");
|
||||
|
||||
var httpsServerMgrInstance = new httpsServerMgr(),
|
||||
defaultRule = require("./rule_default.js"),
|
||||
@ -109,9 +111,15 @@ function userRequestHandler(req,userRes){
|
||||
method : req.method,
|
||||
headers : req.headers
|
||||
};
|
||||
userRule.externalHttpProxies = userRule.externalHttpProxies || [];
|
||||
if(userRule.externalHttpProxies.length){
|
||||
var agent = null, externalProxy = userRule.externalHttpProxies[Math.floor(Math.random()*userRule.externalHttpProxies.length)];
|
||||
agent = new HttpProxyAgent(externalProxy);
|
||||
if(agent)options.agent = agent;
|
||||
console.log(color.blue('this request is using ' + externalProxy + ' as external proxy'));
|
||||
}
|
||||
options = userRule.replaceRequestOption(req,options) || options;
|
||||
|
||||
|
||||
//update quest data
|
||||
reqData = userRule.replaceRequestData(req,reqData) || reqData;
|
||||
options.headers = util.lower_keys(options.headers);
|
||||
|
@ -25,7 +25,9 @@
|
||||
"stream-throttle": "^0.1.3",
|
||||
"ws": "^0.4.32",
|
||||
"cookie":"^0.1.2",
|
||||
"mysql":"^2.5.2"
|
||||
"mysql":"^2.5.2",
|
||||
"http-proxy-agent":"^0.2.6",
|
||||
"https-proxy-agent":"^0.3.5"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user