手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Nginx后端服务大量TIME-WAIT的解决

[日期:2018-10-09] 来源:Linux社区  作者:tenderrain [字体: ]

原因

在HTTP1.1协议中,有个 Connection 头,Connection有两个值,close和keep-alive,这个头就相当于客户端告诉服务端,服务端你执行完成请求之后,是关闭连接还是保持连接,保持连接就意味着在保持连接期间,只能由客户端主动断开连接。还有一个keep-alive的头,设置的值就代表了服务端保持连接保持多久。

HTTP默认的Connection值为close,那么就意味着关闭请求的一方几乎都会是由服务端这边发起的。那么这个服务端产生TIME_WAIT过多的情况就很正常了。

虽然HTTP默认Connection值为close,但是现在的浏览器发送请求的时候一般都会设置Connection为keep-alive了。所以,也有人说,现在没有必要通过调整参数来使TIME_WAIT降低了。

参考:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

nginx到后端的默认配置

Passing Request Headers
By default, NGINX redefines two header fields in proxied requests, “Host” and “Connection”,
and eliminates the header fields whose values are empty strings. “Host” is set to the $proxy_host variable,
and “Connection” is set to close.

nginx到后端默认的HTTP版本

Syntax:proxy_http_version 1.0 | 1.1;
   
Default:proxy_http_version 1.0;
   
Context:http, server, location
   
This directive appeared in version 1.1.4.


参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

Nginx到后端不开启keepalive的原因

keepalive的数量很难设置的准确,偏小的话就没啥作用 偏大的话会影响worker的短连接处理,都是内网 tcp连接的过程耗时应该可忽略吧,==但是带来的问题可能会造成后端服务的TIME-WAIT增多

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-10/154737.htm

linux
相关资讯       TIME-WAIT 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款