zoukankan      html  css  js  c++  java
  • 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包中发送。
  • 相关阅读:
    Error: could not open `C:Program FilesJavajre6libi386jvm.cfg'
    异常:java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/app/userInfoMaint/getProvince.do'
    解析Java反射
    Cause: java.sql.SQLException: 无效的列索引
    Internet Explorer 无法打开该 Internet 站点,请求的站点不可用或无法找到
    解决The JSP specification requires that an attribute name is preceded by whitespace问题
    pl/sql的to_char和to_date
    oracle 在xml中批量插入,批量修改及多组条件查询
    时间转换模板
    Java网络编程从入门到精通(5):使用InetAddress类的getHostName方法获得域名
  • 原文地址:https://www.cnblogs.com/52why/p/13292702.html
Copyright © 2011-2022 走看看