• 深入理解Nginx~网络连接的设置


    1、读取HTTP头部的超时时间

    1. 语法: client_header_timeout time(默认单位:秒);
    2. 默认: client_header_timeout 60;
    3. 配置块: http、server、location

            如果在一个时间间隔(超时时间)内没有读取到客户端发来的字节,则认为超时,并向客户端返回408("Request timed out")响应。

    2、读取HTTP包体的超时时间

    1. 语法: client_body_timeout time(默认单位:秒);
    2. 默认: client_body_timeout 60;
    3. 配置块: http、server、location

    3、发送响应的超时时间

    1. 语法: send_timeout time;
    2. 默认: send_timeout 60;
    3. 配置块: http、server、location

    如果某个连接超过send_timeout定义的超时时间,那么Nginx将会关闭这个连接。

    4、reset_timeout_connection

    1. 语法: reset_timeout_connection on|off;
    2. 默认: reset_timeout_connection off;
    3. 配置块: http、server、location

    连接超时后将通过向客户端发送RST包来直接重置连接。

    注意,使用RST重置包关闭连接会带来一些问题,默认情况下不会开启。

    5、lingering_close

    1. 语法: lingering_close off|on|always;
    2. 默认: lingering_close on;
    3. 配置块: http、server、location

    该配置控制Nginx关闭用户连接的方式。

    always表示关闭用户连接前必须无条件地处理连接上所有用户发送的数据。

    off表示关闭连接时完全不管连接上是否已经有准备就绪的来自用户的数据。

    on是中间值,一般情况下在关闭连接前都会处理连接上的用户发送的数据,除了
    有些情况下在业务上认定这之后的数据是不必要的。

    6、lingering_time

    1. 语法: lingering_time time;
    2. 默认: lingering_time 30s;
    3. 配置块: http、server、location

    lingering_close启用后,这个配置项对于上传大文件很有用。上文讲过,当用户请求的
    Content-Length大于max_client_body_size配置时,Nginx服务会立刻向用户发送413(Request
    entity too large)响应。但是,很多客户端可能不管413返回值,仍然持续不断地上传HTTP
    body,这时,经过了lingering_time设置的时间后,Nginx将不管用户是否仍在上传,都会把连
    接关闭掉。

    7、lingering_timeout

    1. 语法: lingering_timeout time;
    2. 默认: lingering_timeout 5s;
    3. 配置块: http、server、location

    lingering_close生效后,在关闭连接前,会检测是否有用户发送的数据到达服务器,如果
    超过lingering_timeout时间后还没有数据可读,就直接关闭连接;否则,必须在读取完连接缓
    冲区上的数据并丢弃掉后才会关闭连接。

    8、对某些浏览器禁用keepalive功能

    1. 语法: keepalive_disable[msie6|safari|none]...
    2. 默认: keepalive_disablemsie6 safari
    3. 配置块: http、server、location

    9、keepalive超时时间

    1. 语法: keepalive_timeout time(默认单位:秒);
    2. 默认: keepalive_timeout 75;
    3. 配置块: http、server、location

    10、一个keepalive长连接上允许承载的请求最大数

    1. 语法: keepalive_requests n;
    2. 默认: keepalive_requests 100;
    3. 配置块: http、server、location

    11、tcp_nodelay

    1. 语法: tcp_nodelay on|off;
    2. 默认: tcp_nodelay on;
    3. 配置块: http、server、location

    确定对keepalive连接是否使用TCP_NODELAY选项

    12、tcp_nopush

    1. 语法: tcp_nopush on|off;
    2. 默认: tcp_nopush off;
    3. 配置块: http、server、location

    在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或Linux系统上的
    TCP_CORK功能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中
    发送。

  • 相关阅读:
    【云原生】kubernetes中pod(进阶)
    JAVA NIO 异步TCP服务端向客户端消息群发代码教程实战
    iPad Pro 2022款将迎来大改款 支持反向无线充电
    redis未授权访问漏洞
    代码随想录算法训练营第三十五天 | LeetCode 435. 无重叠区间、763. 划分字母区间、56. 合并区间
    HTTPS 的加密流程
    十年开发老手,深度解析企业用人标准为何越来越高?!
    基于SpringBoot实现自动装配返回属性
    【滤波跟踪】基于matlab最近邻算法多目标航迹关联【含Matlab源码 2093期】
    交换机基础(二):VLAN 基础知识
  • 原文地址:https://blog.csdn.net/gqltt/article/details/125628972