Nginx 静态内容的上游超时(110:连接超时)?
我遇到过这样一种情况,两个Web服务器使用nginx作为负载平衡器进行设置,它们本身就是后端。分布为Debian气喘。两台服务器上的配置相同(四核,32GB RAM) TCP Nginx 为什么我会受伤Nginx 静态内容的上游超时(110:连接超时)?,nginx,reverse-proxy,connection,Nginx,Reverse Proxy,Connection,我遇到过这样一种情况,两个Web服务器使用nginx作为负载平衡器进行设置,它们本身就是后端。分布为Debian气喘。两台服务器上的配置相同(四核,32GB RAM) TCP Nginx 为什么我会受伤 upstream timed out (110: Connection timed out) while connecting to upstream 在nginx日志中?静态文件600个并发连接的上游超时!? 运行ab测试时,我可以在第一个后端节点上看到: # netstat -tan |
upstream timed out (110: Connection timed out) while connecting to upstream
在nginx日志中?静态文件600个并发连接的上游超时!?
运行ab
测试时,我可以在第一个后端节点上看到:
# netstat -tan | grep ':8080 ' | awk '{print $6}' | sort | uniq -c
2 LISTEN
55 SYN_SENT
37346 TIME_WAIT
好吧,我不喜欢阅读手册,但要回答我的问题: 解决了。那么问题出在哪里:我已经将上游配置为使用
keepalive
,但Nginx doc建议在代理位置设置以下选项:
proxy_http_version 1.1;
proxy_set_header Connection "";
就这样,后端中的数千个
等待时间连接消失了,现在只有大约150个,而不是30-40k。我的案例是需要重新启动的php fpm。您是否知道在上游超时错误出现时会将什么响应代码发送回客户端?我认为这是一个错误504@rabudde在上面的配置中,没有为上游配置keep_alive-只是缺少了它吗keepalive_timeout(用于下游)与proxy_http_版本和proxy_set_头一起解决了这个问题吗?@Andybanandy这两个指令是另外添加的。您可以结合使用它们来启用keepalive。
upstream timed out (110: Connection timed out) while connecting to upstream
# netstat -tan | grep ':8080 ' | awk '{print $6}' | sort | uniq -c
2 LISTEN
55 SYN_SENT
37346 TIME_WAIT
proxy_http_version 1.1;
proxy_set_header Connection "";