proxy_read_timeout 10ms;
如上配置,如果一个 response 由于某些原因,每 9ms 进行了一次传输(由于两次读操作在 timeout 限制内,所以不会超时)。多次传输才传完 response 的话,假如 response 整体 10ms 超时,response 整体是超时的。这个整体的超时要怎么控制?
The timeout is set only between two successive read operations, not for the transmission of the whole response.
附官网指令文档:
Syntax: proxy_read_timeout time;
Default:
proxy_read_timeout 60s;
Context: http, server, location
Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
1
Oa 2019-11-11 17:12:54 +08:00
一小时 8 分钟过去了。。。。。
|
3
dppd 2019-11-11 19:37:13 +08:00
其实还不太明白你的意思...从 keepalive 和 HTTP1.1 入手?
|
4
moonsn OP @dppd append 了
我有个 subrequest 请求,用于获取旁路的信息,比如用户认证什么的。 但是我希望能有个超时机制,这样不至于让旁路拖慢了主请求。使用 proxy_read_timeout 并不能真正做到我想要的限制 response 整体超时。 |
6
eason1874 2019-11-11 20:21:55 +08:00
“多次传输才传完 response 的话,假如 response 整体 10ms 超时,response 整体是超时的。”
估计大家都看不懂你说什么,怀疑自己水平不够,于是进来看一眼又退出了。你可以把 Nginx 所有 _timeout 结尾的配置都看一遍,看哪个适合你。 |
7
azh7138m 2019-11-11 21:14:31 +08:00
send_timeout ?
|
9
dndx 2019-11-12 01:12:38 +08:00
OpenResty `body_filter_by_lua` 可以根据已经花在处理上的时间终止请求。
|