nginx与服务器建立长连接的工作总结

解决TIME_WAIT问题

一、 问题发现

  1. 在公司服务端到上发现上万的TIME_WAIT链接。
    在这里插入图片描述

  2. 而在Nginx的服务器上也发现了类似的大量TIME_WAIT。也就是与Nginx服务器主动断开了与客户端的链接。

  3. 问题产生的主要原因
    服务器产生大量TIME_WAIT的原因,猜测是其主动断开链接的次数太多,需要在TIME_WAIT状态等待2ML的时间。所以猜测问题是Nginx服务器到公司服务端的链接是短连接。据了解,用Nginx做负载均衡时,转发到公司服务端的链接协议默认是Http1.0,在http1.0中发送Connection: close首部,所以当服务端完成请求是会立马断开此链接,链接经过4次挥手之后就进入TIME_WAIT状态等待2ML。而在Nginx上大量的TIME_WAIT猜测是Nginx本身的配置问题,因为客户端是期望建立长连接的,也就是发送Keep-Alive首部,加上策略。

  4. 产生的影响
    当请求的数量很多时,在2ML这个时间段会产生大量的TIME_WAIT链接,大量的TIME_WAIT对性有一定的影响,但是最主要的是,TIME_WAIT标志着我们建立的连接是短连接。对于大量持续的请求来到时,如果每个新的请求到来都要建立新的链接的话,会增加建立链接的开销,这种情况下建立长连接显得尤为重要。

二、解决问题

  1. 修改Nginx的配置
    这里的配置有可以分为两个部分:
    ① 客户端到Nginx服务器。
    http{
    	#配置keep-alive连接超时的时间
    	keepalive_timeout 1000s;
    	#keep-alive连接上可以服务的请求的最大数量
    	keepalive_requests 1000;
    	}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值