upstream http_backend { server 127.0.0.1:8080;
keepalive 200; }
server { ...
location /http/ { proxy_pass http://http_backend; proxy_http_version 1.1; # Remove the Connection header if the client sends it, # it could be "close" to close a keepalive connection proxy_set_header Connection ""; ... } }
keepalive 200;表示nginx与后端tomcat最多维持200个长连接。 注意,tomcat的connector有个参数maxKeepAliveRequests,是说最大保持长连接的数量, 默认是100。总之,nginx和tomcat要配合。
proxy_http_version 1.1; nginx与后端使用HTTP1.1协议,默认是1.0的 proxy_set_header Connection ""; 覆盖head头吧 -------------------------------------------------
不按以上设置的话,nginx默认和后端使用短连接, 数据传输完后,后端发起关闭,所以导致后端服务器有很多TIME_WAIT的连接, 保持5000(多少是跟一个linux设置有关),下不来。
打开长连接后,TIME_WAIT的值只有几百。
|