http {
client_max_body_size 100M; # 设置最大请求体为 100MB
client_body_timeout 60s;# 等待客户端发送请求体的时间为 60 秒
client_header_timeout 60s;# 等待客户端发送请求头的时间为 60 秒
keepalive_timeout 75s;# 连接保持时间为 75 秒
send_timeout 60s; # 等待客户端接收响应的时间为 60 秒
proxy_read_timeout 60s;# 等待后端服务器响应的时间为 60 秒
proxy_connect_timeout 30s;# 连接到后端服务器的时间为 30 秒
proxy_send_timeout 60s; # 向后端服务器发送请求的时间为 60 秒
}
详解
keepalive_timeout 用于设置在处理完请求后,服务器与客户端之间保持连接的最大时间。
场景说明:在用户与网站进行多次交互时,例如浏览多个页面或进行 AJAX 请求,保持连接可以减少连接建立和关闭的开销,提升响应速度。
send_timeout 用于设置 Nginx 向客户端发送响应的最大时间。如果在指定的时间内客户端未能接收完响应,Nginx 将关闭连接并返回错误。
proxy_read_timeout 用于设置 Nginx 等待后端服务器响应的最大时间。如果在指定的时间内后端服务器没有返回响应,Nginx 将关闭连接并返回 504 Gateway Timeout 错误
场景说明:如果你的后端服务处理某些请求需要较长时间(例如,复杂的数据库查询、大数据处理或文件生成),你可能需要增加 proxy_read_timeout 的值,以避免在处理过程中因超时而关闭连接。
proxy_connect_timeout 用于设置 Nginx 在尝试与后端服务器建立连接时的最大等待时间。如果在指定的时间内无法与后端服务器建立连接,Nginx 将返回 502 Bad Gateway 错误。
proxy_send_timeout 用于设置 Nginx 在向后端服务器发送请求时的最大等待时间。如果在指定的时间内 Nginx 没有将请求完全发送到后端服务器,Nginx 将关闭连接并返回 504 Gateway Timeout 错误。