Nginx的upstream常见分配算法:
轮询
理论上每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
以下是常见的配置
upstream test-vue {
server 192.168.0.66:888;
server 192.168.0.152:888;
}
server {
listen 11200;
server_name localhost;
location /Reports {
proxy_pass http://test-vue;
}
location /app{
proxy_pass http://test-vue;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
但是发现当某个server不可用时并不会自动剔除,在nginx的日志中显示依旧会轮询到错误的节点
并出现以下的错误
upstream timed out (10060: A connection attempt failed
because the connected party did not properly respond after a period of time,
or established connection failed because connected host has failed to respond)
while reading response header from upstream, client: 127.0.0.1, server: localhost,
解决方案
将server_name localhost改为127.0.0.1即可