[英]Load balancing with node.js using http-proxy
我正在尝试使用node.js和http-proxy编写负载均衡代码。 我想要一个loadBalancer,它共享两台服务器之间的传入请求处理。
var http = require('http'),
httpProxy = require('http-proxy');
var servers = [{host :'127.0.0.1', port :3000}, {host : 'remote_adr',port :3000}];
httpProxy.createServer(function (req, res, proxy) {
var target = servers.shift();
proxy.proxyRequest(req, res, target);
servers.push(target);
}).listen(8000);
我认为这样做,它会产生一个loadBalancer,它交替地向serv1和serv2发送请求。
但是,当我试用它时,似乎没有特定的顺序请求2台服务器。 此外,大多数请求都发送到我的localhost节点服务器(127.0.0.1:3000)
有人能够解释这种行为吗?
这应该按照你的要求进行循环,但这是一个非常天真的循环赛。 您可能会看到,您的favicon.ico请求在单个服务器上的请求份额高于正常份额。 例如。
Server 1: Actual Requests
Server 2: favicon.ico
Server 1: Another Request
Server 2: favicon.ico
Server 1: Final Request
Server 2: favicon.ico
因此,根据您的记录方式,当技术上每个服务器获得相同数量的请求时,服务器1将获得所有请求。 另请注意,如果您从节点提供资源,您的资产也将包含在循环中。 因此,每个图像或文件请求也将被切换到不同的节点实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.