我想基于URL创建代理,这样您就可以访问:blah.com:8000/tolley-ltm并将代理请求发送到我的本地工作站,例如tolley.internal.blah.com URL。所以我也可以做blah.com:8000/someguy-ltm,它会发送到someguy-ltm.internal.blah.com上某个人的工作站。最终用户只能看到blah.com:8000/tolley-ltm
我有这种工作,但不是100%,我希望你的帮助!这是当前的代码:
var fulltld ="internal.blah.com";
var proxyServer = httpProxy.createProxy();
var options = {
'/tolley-ltm': 'tolley-ltm',
'/someguy-ltm': 'someguy-ltm'
}
require('http').createServer(function(req, res) {
var dest = req.url;
req.url = '/';
fail = function(err){
console.log("Something bad happened: " + err);
}
proxyServer.web(req, res, {
target: {
host: options[dest] + '.' + fulltld,
port: 6109
}
},fail);
}).listen(8000);
所以当前发生的事情是我在我的浏览器中访问blah.com:8000/tolley-ltm并成功转到tolley.internal.blah.com:6109,但是当我导航以来我将req.url更改为/而不是tolley-ltm然后每个后续行动然后转到blah.com:8000/而不是blah.com:8000/tolley-ltm这会导致代理停止工作。
旁注:如果我不将req.url更改为'/',它最终代理到tolley.internal.blah.com:6109/tolley-ltm而不仅仅是tolley.internal.blah.com:6109/
有没有办法让最终用户的网址看起来像blah.com/8000/tolley-ltm并且所有操作都回拨给blah.com/8000-ltm,例如我点击链接到转到/ products,它会把我带到blah.com/8000/tolley-ltm/products而不是blah.com/8000/products