nginx长连接配置.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. 现状:
  2. netstat -antp | grep TIME_WAIT | wc -l
  3. 生产环境网络链接出现大量TIME_WAIT
  4. 分析:
  5. 目前访问量不应该出现这么多TIME_WAIT,虽然客户端有定时器,但是如果http是keep-alive是可以复用链接的。
  6. 可能是客户端http connetion是close导致。
  7. 处理:
  8. 1、测试环境抓包发现发现客户端请求是keep-alive,且交互过程一直复用该链接。具体参见:nginx长连接配置_tcpdump.cap
  9. 2、看具体网络链接状态,确认nginx断开链接。
  10. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  11. tcp 0 0 172.18.51.51:7900 127.0.0.1:36636 TIME_WAIT -
  12. 3、修改upstream配置,增加nginx代理后端服务器长连接配置。
  13. # logic server
  14. upstream brainLogicServer {
  15. server 127.0.0.1:7900;
  16. keepalive 300;
  17. }
  18. server {
  19. listen 80;
  20. server_name brain.test.xsbanruo.com;
  21. access_log /var/log/nginx/brain.logic.log main;
  22. location / {
  23. proxy_pass http://brainLogicServer;
  24. proxy_set_header Host $Host;
  25. proxy_set_header x-forwarded-for $remote_addr;
  26. proxy_set_header X-Real-IP $remote_addr;
  27. add_header Cache-Control no-store;
  28. add_header Pragma no-cache;
  29. proxy_http_version 1.1;
  30. proxy_set_header Connection "";
  31. }
  32. }