nginx后端应用服务器有大量的tcp连接处于time_wait

2018-12-07 22:21:07
今天发现weblogic上有大量的连接处于time_wait状态,感觉很奇怪。据说是nginx照成的,用tcpdump研究下。

在nginx的服务器上执行

tcpdump -i bond0 -nnA src host 134.96.129.36 and dst host 134.96.129.71 | grep -30 134.96.111.86

nginx后端应用服务器有大量的tcp连接处于time_wait

可以看到nginx在把请求转发到后台weblogic上时候是发送的http头信息中指定使用HTTP/1.0和Connection:close。从这个Connection属性可以知道,nginx让后端weblogic在请求完成后(及响应请求后),直接关闭连接。及weblogic做的主动关闭,所以主动关闭的一方会有大量的time_wait。----http短连接

在浏览器访问,看以看到只要weblogic请求完毕就关闭与nginx的连接,然后进入time_wait状态,time_wait的时间是60秒。

nginx后端应用服务器有大量的tcp连接处于time_wait
请求转码

json={"param":null,"target":"Version"}

-------------------------------------------------------------------------------------------

在nginx的配置中有一个属性指定浏览器发起的连接与nginx保持keepalive的时间 -----http长连接

下面验证该配置是否有用

nginx后端应用服务器有大量的tcp连接处于time_wait
设置keepalive_timeout属性为30秒

在nginx服务器上重复执行如下命令,监听来自ip为85的浏览器请求

netstat -nto | grep 134.96.111.85 | grep 8010 >> abc.txt && date >> abc.txt

此时在浏览器发送请求该

第一次浏览器求情的时间是19:41:48

nginx后端应用服务器有大量的tcp连接处于time_wait
断开连接的时间是19:42:17

nginx后端应用服务器有大量的tcp连接处于time_wait
established的时间是12+17=29秒。其实第一浏览器的请求时间应该往前的。我统计的不准,执行netstat时候晚了,所以刚好实际那应该就是30秒。

---------------------------------------------------------------------------------------------

还可以做下测试,只要在浏览器重复请求web页面,可以发现浏览器与nginx的连接会被重用,这个可以通过

established连接持续的时间可以看出来。---------------这就是所谓的http长连接了

  • 2020-12-22 12:02:41

    ios开发优秀的开源框架,demo集合

    期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可)。请广大网友只按照目录结构(即使目录结构有问题)添加三方库,并提交pull request。目录问题大家提出issues后楼主会及时更改的。

  • 2020-12-27 20:36:10

    音频播放AudioTrack之入门篇

    AudioTrack是管理和播放单一音频资源的类。AudioTrack仅仅能播放已经解码的PCM流,用于PCM音频流的回放。