1

我正在检查http-proxy 模块,基本上我所理解的是它在具有相同端口的两个不同主机之间切换。所以这里的问题是是否可以在使用相同主机的同时在两个不同的端口之间切换(例如,两个主机都是 IP 地址)?

4

1 回答 1

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 请求)。

于 2012-08-16T13:33:56.870 回答