我使用nginx作为反向代理,并在上游服务器(Windows 2003)中找到超过30k个TIME_WAIT状态端口。我知道我的服务器在这里讨论(http://nginx.org/pipermail/nginx/2009-April/011255.html)的“端口之外”,并且设置nginx和上游服务器重用TIME_WAIT并更快地回收。nginx上游服务器“端口外”
[sysctl -p]
……
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
但是nginx的挂起和“连接超时而连接到上游服务器”仍然错误可以在nginx的错误日志中找到,当上游的RPS高于10001分钟内。当上游是Windows时,服务器将在几秒钟内“脱离端口”。
任何想法?有一个等待队列的连接池? Maxim Dounin写了一个有用的模块来保持与memcached的连接,但为什么它不能支持Web Server?
也许这是为http://serverfault.com? – Matthew 2011-04-27 02:06:41