在集群的简单nginx配置下,然后我关闭了192.168.1.77:3032
服务器。
我不时在日志中捕获502错误和“连接到上游客户端时没有上游”,而“server unix:///var/tmp/site.sock backup;”工作,因为我猜必须处理请求,但nginx不会发现它是实时的。可能是什么问题?
nginx config:
upstream uwsgicluster {
server 192.168.1.77:3032;
server unix:///var/tmp/site.sock backup;
}
server {
listen 80;
server_name site.com www.site.com;
access_log /var/log/nginx/sire.log;
error_log /var/log/nginx/site-error.log;
location / {
uwsgi_pass uwsgicluster;
include uwsgi_params;
}
}
如果我删除了192.168.1.77:3032服务器 从上游和重新启动nginx它工作正常,但关闭192.168.1.77:3032服务器错误定期发生
答案 0 :(得分:1)
我认为nginx仍然会尝试上游块中的两个服务器,即使一个服务器没有工作。如果它无法连接到其中一个,它将尝试另一个,但仍会记录您看到的错误。
默认情况下,proxy_next_upstream设置将在出错或超时时尝试下一个上游服务器。你可以改写:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
您是否只看到错误日志,或者您是否也看到了不受欢迎的行为/负载平衡?