我使用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