设为首页 收藏本站

运维网

查看: 394|回复: 0

[经验分享] Nginx基础入门之nginx网络连接配置项说明

[复制链接]

尚未签到

发表于 4 天前 | 显示全部楼层 |阅读模式
  有时我们需nginx主配置文件中,我们有常常需要对nginx网络连接设置参数及文件类型做一些定义,比如客户端连接超时,连接超时时间等设置,这些参数如设置出问题往往会影响nginx的性能,下面我们讲讲解关于nginx常见网络设置参数以及文件类型的定义
  一.关于nginx一些常见的网络连接设置
  1.1读取HTTP头部的超时时间
  语法:client_header_timeout time(默认单位:秒);
  默认:client_header_timeout 60;
  配置块:http、server、location
  客户端与服务器建立连接后将开始接收HTTP头部,在这个过程中,如果在一个时间间隔(超时时间)内没有读取到客户端发来的字节,则认为超时,并向客户端返回408 ("Request timed out")响应。
  1.2读取HTTP包体的超时时间
  语法:client_body_timeout time(默认单位:秒);
  默认:client_body_timeout 60;
  配置块:http、server、location
  此配置项与client_header_timeout相似,只是这个超时时间只在读取HTTP包体时才有效。
  1.3发送响应的超时时间
  语法:send_timeout time;
  默认:send_timeout 60;
  配置块:http、server、location
  这个超时时间是发送响应的超时时间,即Nginx服务器向客户端发送了数据包,但客户端一直没有去接收这个数据包。如果某个连接超过send_timeout定义的超时时间,那么Nginx将会关闭这个连接。
  1.4 重置超时连接选项
  语法:reset_timeout_connection on | off;
  默认:reset_timeout_connection off;
  配置块:http、server、location
  连接超时后将通过向客户端发送RST包来直接重置连接。这个选项打开后,Nginx会在某个连接超时后,不是使用正常情形下的四次握手关闭TCP连接,而是直接向用户发送RST重置包,不再等待用户的应答,直接释放Nginx服务器上关于这个套接字使用的所有缓存(如TCP滑动窗口)。相比正常的关闭方式,它使得服务器避免产生许多处于FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT状态的TCP连接。
  注意,使用RST重置包关闭连接会带来一些问题,默认情况下不会开启。
  1.5 lingering_close
  语法:lingering_close off | on | always;
  默认:lingering_close on;
  配置块:http、server、location
  该配置控制Nginx关闭用户连接的方式。always表示关闭用户连接前必须无条件地处理连接上所有用户发送的数据。off表示关闭连接时完全不管连接上是否已经有准备就绪的来自用户的数据。on是中间值,一般情况下在关闭连接前都会处理连接上的用户发送的数据,除了有些情况下在业务上认定这之后的数据是不必要的。
  1.6 lingering_time
  语法:lingering_time time;
  默认:lingering_time 30s;
  配置块:http、server、location
  lingering_close启用后,这个配置项对于上传大文件很有用。上文讲过,当用户请求的Content-Length大于max_client_body_size配置时,Nginx服务会立刻向用户发送413(Request entity too large)响应。但是,很多客户端可能不管413返回值,仍然持续不断地上传HTTP body,这时,经过了lingering_time设置的时间后,Nginx将不管用户是否仍在上传,都会把连接关闭掉。
  1.7 lingering_timeout
  语法:lingering_timeout time;
  默认:lingering_timeout 5s;
  配置块:http、server、location
  lingering_close生效后,在关闭连接前,会检测是否有用户发送的数据到达服务器,如果超过lingering_timeout时间后还没有数据可读,就直接关闭连接;否则,必须在读取完连接缓冲区上的数据并丢弃掉后才会关闭连接。
  1.8 对某些浏览器禁用keepalive功能
  语法:keepalive_disable [ msie6 | safari | none ]...
  默认:keepalive_disable  msie6 safari
  配置块:http、server、location
  HTTP请求中的keepalive功能是为了让多个请求复用一个HTTP长连接,这个功能对服务器的性能提高是很有帮助的。但有些浏览器,如IE 6和Safari,它们对于使用keepalive功能的POST请求处理有功能性问题。因此,针对IE 6及其早期版本、Safari浏览器默认是禁用keepalive功能的。
  1.9 keepalive超时时间
  语法:keepalive_timeout time(默认单位:秒);
  默认:keepalive_timeout 75;
  配置块:http、server、location
  一个keepalive 连接在闲置超过一定时间后(默认的是75秒),服务器和浏览器都会去关闭这个连接。当然,keepalive_timeout配置项是用来约束Nginx服务器的,Nginx也会按照规范把这个时间传给浏览器,但每个浏览器对待keepalive的策略有可能是不同的。
  1.10 一个keepalive长连接上允许承载的请求最大数
  语法:keepalive_requests n;
  默认:keepalive_requests 100;
  配置块:http、server、location
  一个keepalive连接上默认最多只能发送100个请求。
  1.11 tcp_nodelay
  语法:tcp_nodelay on | off;
  默认:tcp_nodelay on;
  配置块:http、server、location
  确定对keepalive连接是否使用TCP_NODELAY选项。
  1.12 tcp_nopush
  语法:tcp_nopush on | off;
  默认:tcp_nopush off;
  配置块:http、server、location
  在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或Linux系统上的TCP_CORK功能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。
  二.关于nginx一些常见的网络连接设置
  MIME type与文件扩展的映射
  语法:type {...};
  配置块:http、server、location
  定义MIME type到文件扩展名的映射。多个扩展名可以映射到同一个MIME type。例如:
types {  
text/html    html;
  
text/html    conf;
  
image/gif    gif;
  
image/jpeg   jpg;
  
}
  默认MIME type
  语法:default_type MIME-type;
  默认:default_type text/plain;
  配置块:http、server、location
  当找不到相应的MIME type与文件扩展名之间的映射时,使用默认的MIME type作为HTTP header中的Content-Type。
  types_hash_bucket_size

  语法:types_hash_bucket_size>  默认:types_hash_bucket_size 32|64|128;
  配置块:http、server、location
  为了快速寻找到相应MIME type,Nginx使用散列表来存储MIME type与文件扩展名。types_hash_bucket_size 设置了每个散列桶占用的内存大小。
  types_hash_max_size

  语法:types_hash_max_size>  默认:types_hash_max_size 1024;
  配置块:http、server、location
  types_hash_max_size影响散列表的冲突率。types_hash_max_size越大,就会消耗更多的内存,但散列key的冲突率会降低,检索速度就更快。types_hash_max_size越小,消耗的内存就越小,但散列key的冲突率可能上升。



运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表