阳光博客

纠缠的云纠缠的泪纠缠的晨晨昏昏 流逝的风流逝的梦流逝的年年岁岁

« IIS记录nginx反向代理后的真实IPcentos下lrzsz安装过程--SecureCRT上传下载文件工具 »

Nginx负载均衡器TIME_WAIT过多的问题

nginx

最近在使用nginx做前端道理的时候.发现后端的web服务器会很多TIME_WAIT的连接
分析了下原因如下:
如果架构前端使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题,但可能因为它占用了系统过多的端口,导致后续的请求无法获取端口而造成障碍,目前看来最好的办法是让每个TIME_WAIT早点过期:

 

在linux上的nginx负载均衡器上可以这么配置:
vi /etc/sysctl.conf

编辑文件,加入以下内容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p 让参数生效。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

 

发布:nightash | 分类:软件技巧 | 评论:0 | 引用:0 | 浏览:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

站内搜索

最新评论及回复

最近发表

联系邮箱:guozhiqing@live.cn , Powered By Z-Blog 1.8 Arwen Build 91204 , 苏ICP备10018002号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.