Nginx 提供了多种超时相关的配置参数,用于控制客户端和服务器之间的连接行为。以下是主要的超时配置项及其说明:
# 客户端读取请求头的超时时间
client_header_timeout 60s;
# 客户端读取请求体的超时时间
client_body_timeout 60s;
# 客户端保持连接的超时时间(keep-alive)
keepalive_timeout 75s;
# 与上游服务器建立连接的超时时间
proxy_connect_timeout 60s;
# 从上游服务器读取响应的超时时间
proxy_read_timeout 60s;
# 向上游服务器发送请求的超时时间
proxy_send_timeout 60s;
# FastCGI服务器相关超时(类似proxy_*)
fastcgi_connect_timeout 60s;
fastcgi_read_timeout 60s;
fastcgi_send_timeout 60s;
# 解析域名超时时间
resolver_timeout 30s;
# SSL握手超时时间
ssl_handshake_timeout 10s;
http {
# 客户端相关
client_header_timeout 60s;
client_body_timeout 60s;
keepalive_timeout 75s;
# 代理相关
proxy_connect_timeout 60s;
proxy_read_timeout 600s; # 长连接场景可适当延长
proxy_send_timeout 60s;
# 其他
resolver_timeout 30s;
ssl_handshake_timeout 10s;
}
location /api/ {
proxy_connect_timeout 30s;
proxy_read_timeout 300s;
proxy_send_timeout 30s;
}
生产环境建议:
proxy_read_timeout
(如300s)client_body_timeout
和proxy_read_timeout
调试技巧:
nginx -t
测试配置语法nginx -s reload
重新加载配置监控:
$upstream_response_time
变量记录上游响应时间注意:
需要根据您的具体业务场景调整这些超时值,特别是对于处理大文件上传或长轮询请求的场景。