1. 客户端请求超时
这些通常适合放在http或server块中,用于全局或服务器级设置
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博客搜索:标题关键字。以获取最新全部资料 ❤
免责声明: 本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
免责声明: 本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。
