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