客户端发送http请求,后端进行多个服务器转发。本例转发了3个服务器。
var https = require('https');
var httpProxy = require('http-proxy');
var http = require('http');
httpProxy.createProxyServer({
target: 'https://app.datadoghq.com',
agent: https.globalAgent,
headers: {
host: 'app.datadoghq.com'
},
}).listen(10001);
httpProxy.createProxyServer({
target: {
host: '172.29.231.70',
port: 8000
}
}).listen(10002);
var proxyCI = httpProxy.createServer({
target: 'https://dc-cloud.oneapm.com',
agent: https.globalAgent,
headers: {
host: 'dc-cloud.oneapm.com'
},
});//.listen(10000);
http.createServer(function (req, res) {
req.url = req.url.replace("\/?","?");
if(req.url == "/intake?api_key=e7afaf986f5cc822406cbd5831328462") {
req.url = "/infrastructure/metrics?license_key=VgAAA1sNB1Ze953TH1YTVV5KXxb55aBVWR9QBQRXSe38fAMASwkKSgNU92f1CAMeUgIYUFA=";
proxyCI.web(req, res);
}
//console.log(req.url);
}).listen(10003);
//http://dc-cloud.oneapm.com/infrastructure/metrics?license_key=VgAAA1sNB1Ze953TH1YTVV5KXxb55aBVWR9QBQRXSe38fAMASwkKSgNU92f1CAMeUgIYUFA=
//http://172.29.225.114:1000/infrastructure/metrics?license_key=VgAAA1sNB1Ze953TH1YTVV5KXxb55aBVWR9QBQRXSe38fAMASwkKSgNU92f1CAMeUgIYUFA=
var proxy = httpProxy.createServer({
target: {
port: 10001,
host: 'localhost'
},
forward: {
port: 10002,
host: 'localhost'
},
forward: {
port: 10003,
host: 'localhost'
},
});//.listen(10000);
var proxyServer = http.createServer(function (req, res) {
req.url = req.url.replace("\/?","?");
//console.log(req.url);
proxy.web(req, res);
}).listen(10000);