external http proxy support

This commit is contained in:
想当当 2014-11-10 13:30:58 +08:00
parent 0db6b1861a
commit d54991da35
2 changed files with 13 additions and 3 deletions

View File

@ -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);

View File

@ -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": {