nginx中的超時設定,請求超時 響應等待超時等

2021-10-24 18:28:10 字數 2784 閱讀 3413

nginx比較強大,可以針對單個網域名稱請求做出單個連線超時的配置. 

比如些動態解釋和靜態解釋可以根據業務的需求配置

proxy_connect_timeout :後端伺服器連線的超時時間_發起握手等候響應超時時間

proxy_read_timeout:連線成功後_等候後端伺服器響應時間_其實已經進入後端的排隊之中等候處理(也可以說是後端伺服器處理請求的時間)

proxy_send_timeout :後端伺服器資料回傳時間_就是在規定時間之內後端伺服器必須傳完所有的資料

nginx使用proxy模組時,預設的讀取超時時間是60s。

1、請求超時

http
2、後端伺服器處理請求的時間設定(頁面等待伺服器響應時間)

location /
nginx常用的超時配置說明client_header_timeout

語法 client_header_timeout time

預設值 60s

上下文 http server

說明 指定等待client傳送乙個請求頭的超時時間(例如:get / http/1.1).僅當在一次read中,沒有收到請求頭,才會算成超時。如果在超時時間內,client沒傳送任何東西,nginx返回http狀態碼408(「request timed out」)

client_body_timeout

語法 client_body_timeout time

預設值 60s

上下文 http server location

說明 該指令設定請求體(request body)的讀超時時間。僅當在一次readstep中,沒有得到請求體,就會設為超時。超時後,nginx返回http狀態碼408(「request timed out」)

keepalive_timeout

語法 keepalive_timeout timeout [ header_timeout ]

預設值 75s

上下文 http server location

說明 第乙個引數指定了與client的keep-alive連線超時時間。伺服器將會在這個時間後關閉連線。可選的第二個引數指定了在響應頭keep-alive: timeout=time中的time值。這個頭能夠讓一些瀏覽器主動關閉連線,這樣伺服器就不必要去關閉連線了。沒有這個引數,nginx不會傳送keep-alive響應頭(儘管並不是由這個頭來決定連線是否「keep-alive」)

兩個引數的值可並不相同

lingering_timeout

語法 lingering_timeout time

預設值 5s

上下文 http server location

說明 lingering_close生效後,在關閉連線前,會檢測是否有使用者傳送的資料到達伺服器,如果超過lingering_timeout時間後還沒有資料可讀,就直接關閉連線;否則,必須在讀取完連線緩衝區上的資料並丟棄掉後才會關閉連線。

resolver_timeout

語法 resolver_timeout time 

預設值 30s

上下文 http server location

說明 該指令設定dns解析超時時間

proxy_connect_timeout

語法 proxy_connect_timeout time 

預設值 60s

上下文 http server location

說明 該指令設定與upstream server的連線超時時間,有必要記住,這個超時不能超過75秒。

這個不是等待後端返回頁面的時間,那是由proxy_read_timeout宣告的。如果你的upstream伺服器起來了,但是hanging住了(例如,沒有足夠的執行緒處理請求,所以把你的請求放到請求池裡稍後處理),那麼這個宣告是沒有用的,由於與upstream伺服器的連線已經建立了。

proxy_read_timeout

語法 proxy_read_timeout time 

預設值 60s

上下文 http server location

說明 該指令設定與**伺服器的讀超時時間。它決定了nginx會等待多長時間來獲得請求的響應。這個時間不是獲得整個response的時間,而是兩次reading操作的時間。

proxy_send_timeout

語法 proxy_send_timeout time 

預設值 60s

上下文 http server location

說明 這個指定設定了傳送請求給upstream伺服器的超時時間。超時設定不是為了整個傳送期間,而是在兩次write操作期間。如果超時後,upstream沒有收到新的資料,nginx會關閉連線

proxy_upstream_fail_timeout(fail_timeout)

語法 server address [fail_timeout=30s]

預設值 10s

上下文 upstream

說明 upstream模組下 server指令的引數,設定了某乙個upstream後端失敗了指定次數(max_fails)後,該後端不可操作的時間,預設為10秒

nginx超時設定

nginx常用的超時配置說明 client header timeout 語法 client header timeout time 預設值 60s 上下文 http server 說明 指定等待client傳送乙個請求頭的超時時間 例如 get http 1.1 僅當在一次read中,沒有收到請求...

nginx超時設定

client header timeout 語法 client header timeout time 預設值 60s 上下文 http server 說明 指定等待client傳送乙個請求頭的超時時間 例如 get http 1.1 僅當在一次read中,沒有收到請求頭,才會算成超時。如果在超時時...

nginx超時設定

nginx常用的超時配置說明 client header timeout 語法 client header timeout time 預設值 60s 上下文 http server 說明 指定等待client傳送乙個請求頭的超時時間 例如 get http 1.1 僅當在一次read中,沒有收到請求...