client_body_timeout
`client_body_timeout` 指令为读取客户端请求主体设置时间限制。 — NGINX HTTP Core
client_body_timeout
httpserverlocation
语法client_body_timeout time;
默认值60s
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`client_body_timeout` 指令指定了一个超时值,用于决定服务器等待客户端发送完整请求主体的时长。 这包括 POST 和 PUT 请求,这类请求的主体可能较大。如果客户端在指定时间内未发送完整主体,NGINX 将关闭连接并返回 `408 Request Timeout` 错误。该超时有助于通过防止挂起的连接来有效管理服务器资源。 该指令可用于多个上下文:`http`、`server` 和 `location`,因此在配置不同作用域的请求处理时很灵活。它接受一个参数,即超时时长,通常以秒为单位或使用 `ngx_time_t` 可识别的格式指定,例如 '30s'、'1m' 等。适当设置超时对于防止较慢的客户端独占服务器资源尤其重要,尤其是在高流量场景中。需要注意的是,更具体上下文(如 `location`)中设置的配置会覆盖更高层次(如 `http`)的配置。
配置示例
http {
client_body_timeout 30s;
server {
location /upload {
client_body_timeout 5s;
}
}
}⚠
将超时时间设置得过低可能会导致对连接较慢的客户端或发送大量数据的客户端出现意外的 `408 Request Timeout` 错误。
⚠
如果未定义,默认值为 60 秒,这可能并不适用于所有应用,尤其是在处理大量上传时。