Nginx网络连接配置

摘要:
本文档记录了Nginx中网络连接的设置和配置项。5) 连接关闭模式语法:lining_closeoff|on|always;默认值:lineing_closeon;配置块:服务器,http,location此配置确定Nginx如何关闭用户连接。此配置用于设置Nginx服务器关闭连接的超时。浏览器将具有不同的时间设置,这些时间设置不由服务器管理。
本文记录Nginx中网络连接的设置配置项。
1)读取HTTP头部超时时间
语法:client_header_timeout time(默认单位:秒);
默认:client_header_timeout 60;
配置块: http、server、location
在与客户端建立连接之后,将开始获取HTTP头部,如果在配置的时间之内没有读取到客户端发来的字节,就会返回超时码(408-Request timed out)。
2)读取HTTP包体超时时间
语法:client_body_timeout time(默认单位:秒);
默认:client_body_timeout 60;
配置块: http、server、location
在与客户端建立连接之后,如果在配置的时间之内没有读取到客户端发来的HTTP包体的字节,就会返回超时码(408-Request timed out)。
3)响应超时时间
语法:send_timeout time;
默认:send_timeout 60;
配置块:http、server、location
该配置是Nginx发送响应的超时时间,即向客户端发送了数据包之后,客户端在设置的超时时间之内没有去接受这个数据包,这样的话Nginx会关闭这个连接。
4)连接超时重置
语法:reset_timeout_connection on|off;
默认:reset_timeout_connection off;
配置块: http、server、location
该配置开启之后,如果Nginx与客户端的连接超时,Nginx不会走正常的四次挥手关闭TCP连接、释放资源,而是直接向客户端发送RST重置包,直接释放NGinx服务器上该套接字的所以缓存,并且不会等待客户端的同意。该配置可以有效减少服务器处于FIN_WAIT1、FIN_WAIT2与TIME_WAIT状态下的连接,但是使用Rst重置包关闭连接会带来一些问题,默认情况下不开启。
5)连接关闭方式
语法:lingering_close off|on|always;
默认:lingering_close on;
配置块:server、http、location
该配置决定了Nginx关闭用户连接的方式。off表示关闭连接时,不管连接上是否存在准备就绪的来自用户的数据。on表示一般情况下关闭连接前处理连接上用户发送的数据,除非是部分情况下业务上认为这些数据为无用数据。always表示关闭连接之前必须无条件的处理完连接上所有用户发送的数据。
6)连接时间
语法:lingering_time time;
默认:lingering_time 30s;
配置块: http、server、location
lingering_close启用之后,该配置对于上传大文件很有用,客户端有时会持续不断的上传HTTPbody,这时超时设置的连接时间之后,Nginx不管用户是否还在上传,都会直接将连接关闭。
7)连接超时时间
语法:lingering_timeout time;
默认:lingering_timeout 5s;
配置块: http、server、location
在lingering_close启用之后,在关闭连接时,将会检测是否有用户发送的数据到达服务器,如果超过设置的时间还没有数据的话,Nginx将会直接关闭连接,不然的话必须要读取完连接缓冲区的数据才会关闭连接。
8)禁用keepalive功能
语法:keepalive_disable [msie6|safari|none]...
默认:keepalive_disable msie6 safari;
配置块:http、server、location
HTTP请求中的keepalive功能是为了请求复用(多个请求使用同一个TCP连接),这样可以有效的提高服务器的性能。但是有一些浏览器对于keepalive功能的post请求处理有功能性问题,比如IE6与Safari,所以默认禁用了它们的keepalive功能。
9)keepalive超时时间
语法:keepalive_timeout time(默认单位:秒);
默认:keepalive_timeout 75;
配置块:http、server、location
一个长连接在闲置了一定的时间之后,服务器和浏览器都会区关闭这个连接。这个配置是来设置Nginx服务器关闭连接的超时时间的,浏览器的话会有不同的时间设置,不归服务器管。
10)长连接最大请求数
语法:keepalive_requests n;
默认:keepalive_requests 100;
配置块:http、server、location
一个长连接上默认最多只能发送100个请求。
11)tcp_nodelay
语法:tcp_nodelay on|off;
默认:tcp_nodelay on;
配置块:http、server、location
确定是否对长连接使用tcp_nodelay选项。启动TCP_NODELAY,就意味着禁用了Nagle算法(Nagle算法通过减少需要传输的数据包,来优化网络。在内核实现中,数据包的发送和接受会先做缓存,分别对应于写缓存和读缓存。),允许小包的发送。对于延时敏感型,同时数据传输量比较小的应用,开启TCP_NODELAY选项无疑是一个正确的选择。比如,对于SSH会话,用户在远程敲击键盘发出指令的速度相对于网络带宽能力来说,绝对不是在一个量级上的,所以数据传输非常少;而又要求用户的输入能够及时获得返回,有较低的延时。如果开启了Nagle算法,就很可能出现频繁的延时,导致用户体验极差。
12)tcp_nopush
语法:tcp_nopush on|off;
默认:tcp_nopush off;
配置块:http、server、location
在打开sendfile选项时,确定是否开启freebsd系统上的tcp_nopush或linux上tcp_cork功能。打开这个配置后,将会在发送响应时将整个响应包头放到一个TCP包中发送。

免责声明:文章转载自《Nginx网络连接配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇机器学习ROC图解读2019-11-29-dotnet-core-使用-GBK-编码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

TCP重组原理及实现

1 引言 TCP/IP 协议目前已经被广泛的被应用,数据在网络上应用 IP 协议进行传输的时候,可能将数据分成多个数据包。对于UDP报文,超过MTU将会被IP分片,而TCP则不用考虑IP分片问题,TCP连接双方会相互通告MSS(最大报文段长度),MSS肯定是<=网络层的最大路径MTU,然后TCP数据拆分成多段通过网络层发送,当服务器端传输层接收到数据...

tcp keepalive

部分信息可以看UNIX网络编程第157页, 摘录过来: 在一个正常的TCP连接上,当我们用无限等待的方式调用下面的Recv或Send的时候: ret=recv(s,&buf[idx],nLeft,flags); 或 ret=send(s,&buf[idx],nLeft,flags); 如果TCP连接被对方正常关闭,也就是说,对方是正确地调用...

MQTT是IBM开发的一个即时通讯协议,构建于TCP/IP协议上,是物联网IoT的订阅协议,借助消息推送功能,可以更好地实现远程控制

最近一直做物联网方面的开发,以下内容关于使用MQTT过程中遇到问题的记录以及需要掌握的机制原理,主要讲解理论。 背景 MQTT是IBM开发的一个即时通讯协议。MQTT构建于TCP/IP协议上,面向M2M和物联网IoT的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支...

【转】snort.conf分析(中文)

原文转自 snort.conf分析(中文) snort.conf分析此文件包含一个snort配置样例。共分五步骤:1 设置你的网络变量2 配置动态加载库3 配置预处理器4 配置输出插件5 增加任意的运行时配置向导6 自定义规则集step1:设置你的网络变量1 其中针对本地网络给出3种方式:a) 清晰指定你的本地网络var HOME_NET 192.168....

Nginx虚拟主机配置教程

说明:配置之前先把域名解析到服务器IP地址上 站点1:bbs.osyunwei.com 程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com 程序所在目录/data/osyunwei/sns chown www.www /data/osyunwei/ -R #设置目录所有者,www为nginx运行账户 chmod 70...

nginx 部署web页面问题

nginx 部署web页面的时候,路径都是对的,但是css文件就是不起作用,控制台提示如下,原来是格式的问题,截图如下: css 被转成了application/octet-stream,这个是nginx的默认格式,所以需要在nginx的配置文件上配置type,配置文件截图为: mime.types 内容为: types { text/html...