mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-05-10 14:58: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,
|
Buffer = require('buffer').Buffer,
|
||||||
util = require("./util"),
|
util = require("./util"),
|
||||||
Stream = require("stream"),
|
Stream = require("stream"),
|
||||||
httpsServerMgr = require("./httpsServerMgr");
|
httpsServerMgr = require("./httpsServerMgr"),
|
||||||
|
HttpProxyAgent = require("http-proxy-agent"),
|
||||||
|
HttpsProxyAgent= require("https-proxy-agent");
|
||||||
|
|
||||||
var httpsServerMgrInstance = new httpsServerMgr(),
|
var httpsServerMgrInstance = new httpsServerMgr(),
|
||||||
defaultRule = require("./rule_default.js"),
|
defaultRule = require("./rule_default.js"),
|
||||||
@ -109,9 +111,15 @@ function userRequestHandler(req,userRes){
|
|||||||
method : req.method,
|
method : req.method,
|
||||||
headers : req.headers
|
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;
|
options = userRule.replaceRequestOption(req,options) || options;
|
||||||
|
|
||||||
|
|
||||||
//update quest data
|
//update quest data
|
||||||
reqData = userRule.replaceRequestData(req,reqData) || reqData;
|
reqData = userRule.replaceRequestData(req,reqData) || reqData;
|
||||||
options.headers = util.lower_keys(options.headers);
|
options.headers = util.lower_keys(options.headers);
|
||||||
|
@ -25,7 +25,9 @@
|
|||||||
"stream-throttle": "^0.1.3",
|
"stream-throttle": "^0.1.3",
|
||||||
"ws": "^0.4.32",
|
"ws": "^0.4.32",
|
||||||
"cookie":"^0.1.2",
|
"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": {},
|
"devDependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user