2012-08-16 297 views
1

我在查看http-proxy module,基本上我知道它是在具有相同端口的两台不同主机之间切换的。所以这里的问题是在使用同一台主机的情况下在两个不同的端口之间切换的可能性(例如,两台主机都是IP地址)?使用http-proxy进行负载均衡

+0

你不觉得关于负载均衡的一个问题就够了吗? – rdrey 2012-08-16 13:44:06

回答

2

您可以在所需端口数量尽可能多的端口之间进行平衡。 http-proxy是可脚本化的。

var servers = [ 
    {host:'app1.site.com', port:9000}, 
    {host:'app2.site.com', port:9010}, 
    {host:'app3.site.com', port:9020} 
]; 
var i = 0; 

var httpProxy = require('http-proxy'); 

httpProxy.createServer(function(req, res, proxy) { 
    proxy.proxyRequest(req, res, servers[i = (i + 1) % 3]); // rotate 
}).listen(80); 

您进行平衡的逻辑取决于您。上面的例子只是一个循环。

您可能还需要定期'测试'主机以确保它仍然可用并禁用它(如果不是这样)(例如,发送OPTIONS请求)。