自己做的小练习,想实现node环境下nginx负载均衡,首先我使用pm2将项目复制为两个,端口号分别改为9998/9999,并启动成功。接下来使用nginx将nginx内部的nginx.conf 文件添加如下代码:
upstream mytest {
server 127.0.0.1:9998 weight=1;
server 127.0.0.1:9999 weight=1;
}
server {
......
location / {
root html;
index index.html index.htm;
proxy_pass http://mytest;
}
}
保存启动nginx,访问localhost:8081发现请求只发送到9998服务器上,请各位大神指点
试试去掉 weight=1
我试了下,依然只发到9998端口上了
@SunAngel: telnet 127.0.0.1 9999
能连上吗?
@dudu: 能
@SunAngel: 把127.0.0.1:9998
对应的服务停掉,看是否会转发到127.0.0.1:9999
@dudu: 转发了,这个结果说明了什么?请dudu老师指教
@SunAngel: 可能是因为没有并发请求,你每次测试时是不是只发了一个请求?
localhost:8081去访问, 一个浏览器而已, 已经当你是一个用户, 分定你到9998了, 你用AB压力测试, 再看网站访问记录就行了, 不然都是当你一个访问者, 分配在一个服务器上。
应该我理解错了,明天我测试一下这种方式。但有个问题:在windows上同样做负载均衡,多次刷新浏览器页面,不会每次都只发一台服务器上,weight都等于1的话,发到两台服务器的次数差不多。这点上我不太理解。