1. 客户端请求超时

这些通常适合放在httpserver块中,用于全局或服务器级设置

  • client_body_timeout:设置 Nginx 等待客户端发送请求主体的超时时间。
  • client_header_timeout:设置 Nginx 等待客户端发送请求头的超时时间。
  • keepalive_timeout:设置保持连接的超时时间,影响客户端与服务器之间的连接保持。

2. 后端服务器超时

这些是反向代理专用的指令,通常应放在location块内(或upstream相关配置中),否则在非代理上下文中可能无效或被忽略。

  • proxy_read_timeout:设置 Nginx 等待后端服务器响应的超时时间。
  • proxy_connect_timeout:设置 Nginx 连接到后端服务器的超时时间。
  • proxy_send_timeout:设置 Nginx 向后端服务器发送请求的超时时间。

含义的讲解

请求的状态:连接 -> 发送 -> 响应

1、客户端到 NGINX

  • client_header_timeout: 通常设置为几秒(如 10 秒)。
  • client_body_timeout: 根据请求主体的大小和网络状况,可以设置为更长的时间(如 30 秒或更长)。
  • keepalive_timeout: 可以设置为较长的时间(如 60 秒或更长),以提高连接的复用性。

2、NGINX 到 被 代理目标服务器

  • 连接阶段proxy_connect_timeout 控制连接的建立时间。
  • 发送阶段proxy_send_timeout 控制请求数据发送的时间。
  • 响应阶段proxy_read_timeout 控制等待响应的时间。

具体使用案例

http {
    client_body_timeout 60;          # 客户端请求主体超时设置为 60 秒
    client_header_timeout 60;        # 客户端请求头超时设置为 60 秒
    keepalive_timeout 120;           # 保持连接超时设置为 120 秒

    server {
        listen 80;
        server_name yourdomain.com;

        location / {
            proxy_pass http://backend;
            proxy_read_timeout 300;   # 等待后端响应超时设置为 300 秒
            proxy_connect_timeout 300; # 连接后端服务器超时设置为 300 秒
            proxy_send_timeout 300;    # 向后端发送请求超时设置为 300 秒
        }
    }
}
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤

免责声明:
本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。