Nginx 静态内容的上游超时(110:连接超时)?

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 |

我遇到过这样一种情况,两个Web服务器使用nginx作为负载平衡器进行设置,它们本身就是后端。分布为Debian气喘。两台服务器上的配置相同(四核,32GB RAM)

TCP

Nginx

为什么我会受伤

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 "";