我正在开始安装和学习avout node.js,因此我在AB测试期间测试了一些基本配置e我总是遇到问题。
我在端口上启动了一个非常小的节点脚本的4个实例:8001,8002,8003和8004。 我还有一个节点脚本,用于在端口80上启动模块http-proxy进行负载平衡。
这是负载平衡脚本的代码:
var arguments = process.argv.splice(2);
var httpProxy = require('http-proxy');
//
// Addresses to use in the round robin proxy
//
var addresses = [
{
host: 'localhost',
port: 8001
},
{
host: 'localhost',
port: 8002
},
{
host: 'localhost',
port: 8003
},
{
host: 'localhost',
port: 8004
}
];
var i = 0;
httpProxy.createServer(function (req, res, proxy) {
proxy.proxyRequest(req, res, addresses[i]);
i = (i + 1) % addresses.length;
}).listen(arguments[0] || 80);
这是在端口8001,8002,8003,8004上等待的脚本代码:
var http = require("http");
var port = process.argv[2];
http.createServer(function(request, response) {
response.writeHead(200);
response.end("aGoodPower");
}).listen(port);
然后我以这种方式启动脚本:
1. open terminal
2. get root credentials: su (password)
3. launch scripts:
node simpleServer.js 8001 &
node simpleServer.js 8002 &
node simpleServer.js 8003 &
node simpleServer.js 8004 &
node nodeHttpProxy.js &
4. ab -n 100000 -c 100 http://127.0.0.1/
此测试始终在30.000和40.000请求之间失败并出现错误:apr_poll:指定的超时已过期(70007)
我不知道为什么,我在网上找不到解释。
我使用一个simpleServer.js脚本进行了相同的测试,测试结束,直到100.000请求没有问题。
有谁能告诉我问题出在哪里?
非常感谢你 Elaidon