加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2014-04-21 16:03:18)
今天发现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
http://s4/mw690/003vCzgNgy6IhoXIegXe3&690
可以看到nginx在把请求转发到后台weblogic上时候是发送的http头信息中指定使用HTTP/1.0和Connection:close。从这个Connection属性可以知道,nginx让后端weblogic在请求完成后(及响应请求后),直接关闭连接。及weblogic做的主动关闭,所以主动关闭的一方会有大量的time_wait。----http短连接
在浏览器访问,看以看到只要weblogic请求完毕就关闭与nginx的连接,然后进入time_wait状态,time_wait的时间是60秒。
json={"param":null,"target":"Version"}
-------------------------------------------------------------------------------------------
在nginx的配置中有一个属性指定浏览器发起的连接与nginx保持keepalive的时间 -----http长连接
下面验证该配置是否有用
http://s8/mw690/003vCzgNgy6IhDJLdiv67&690
设置keepalive_timeout属性为30秒
在nginx服务器上重复执行如下命令,监听来自ip为85的浏览器请求
netstat -nto | grep 134.96.111.85 | grep 8010 >> abc.txt && date >> abc.txt
此时在浏览器发送请求该
第一次浏览器求情的时间是19:41:48
http://s16/mw690/003vCzgNgy6IhEnj9Dxcf&690
断开连接的时间是19:42:17
http://s8/mw690/003vCzgNgy6IhEp4qmb77&690
established的时间是12+17=29秒。其实第一浏览器的请求时间应该往前的。我统计的不准,执行netstat时候晚了,所以刚好实际那应该就是30秒。
---------------------------------------------------------------------------------------------
还可以做下测试,只要在浏览器重复请求web页面,可以发现浏览器与nginx的连接会被重用,这个可以通过
established连接持续的时间可以看出来。---------------这就是所谓的http长连接了


0

阅读 收藏 喜欢 打印举报/Report
前一篇:tcpdump抓包
后一篇:ftp 20、21端口
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有