【发布时间】:2012-08-16 13:24:30
【问题描述】:
我正在查看http-proxy module,基本上我所理解的是它在具有相同端口的两个不同主机之间切换。那么问题来了,是否可以在使用相同主机时在两个不同端口之间切换(例如,两个主机都是 IP 地址)?
【问题讨论】:
-
你不觉得负载均衡一个问题就够了吗?
标签: javascript node.js load-balancing node-http-proxy
我正在查看http-proxy module,基本上我所理解的是它在具有相同端口的两个不同主机之间切换。那么问题来了,是否可以在使用相同主机时在两个不同端口之间切换(例如,两个主机都是 IP 地址)?
【问题讨论】:
标签: javascript node.js load-balancing node-http-proxy
您可以在任意数量的端口上的任意数量的主机之间进行平衡。 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 请求)。
【讨论】: