proxy_read_timeout

`proxy_read_timeout` 指令指定等待被代理服务器响应的时间。 — NGINX HTTP Core

proxy_read_timeout
httpserverlocation
语法proxy_read_timeout time;
默认值60s
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`proxy_read_timeout` 指令定义了从被代理服务器读取数据的超时时间(即 NGINX 转发请求的目标服务器)。如果被代理服务器在该时间内未发送任何数据,NGINX 会终止连接并向客户端返回错误。对于读取阶段可能出现长时间延迟的慢速后端,该超时时间至关重要。 该指令接受一个参数,表示超时时间。该值可以用秒指定,或使用时间后缀(例如 `m` 表示分钟,`h` 表示小时)。超时设置对优化应用性能很关键,应根据后端服务的预期响应时间来设置。如果连接空闲时间超过指定时长,NGINX 服务器会关闭该连接,以防资源被占用。 该指令可在多种上下文中配置,包括 `http`、`server` 和 `location`。指令应用的作用域会影响超时与其他代理指令(例如 `proxy_connect_timeout` 和 `proxy_send_timeout`)之间的交互。进行合理的配置可以确保更好的资源管理并提升通过 NGINX 处理请求的用户体验。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_read_timeout 30s;
}

将超时设置得太低可能导致有效连接被过早终止,从而对用户体验产生负面影响。

该指令仅影响响应的读取,而不影响建立连接或发送请求所需的时间。

请确保将此指令与其他超时指令协调,以便在NGINX配置中实现一致的超时处理。