proxy_read_timeout和全局的keepalive_timeout以谁的为准

proxy_read_timeout是控制proxy后端服务器之间的超时时间,keepalive_timeout是控制客户端和nginx之间的超时时间,但如果proxy_read_timeout大于keepalive_timeout是不是意味着nginx和客户端断开了,nginx还和后端服务器在保持着联系。

 

proxy_read_timeout

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.

keepalive_timeout

Sets a timeout during which an idle keepalive connection to an upstream server will stay open.

两个 timeout 不是同时生效的。keepalive_timeout 用于闲置的连接(没有正在进行数据传输的连接),proxy_read_timeout 用于从 upstream 读取返回数据时,这时连接并不是闲置的。

proxy_read_timeout大于keepalive_timeout 意味着 upstream 正在返回数据时,可以多等一些时间 (proxy_read_timeout) ,传输完成之后,经过一段不太长的时间(keepalive_timeout),如果没有新的请求需要复用这个连接,这个连接将被关闭。

posted @ 2022-02-28 15:46  甜菜波波  阅读(4417)  评论(0编辑  收藏  举报