天天看點

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

上下文 http server location

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

keepalive_timeout 

文法 keepalive_timeout timeout [ header_timeout ]

預設值 75s

說明 第一個參數指定了與client的keep-alive連接配接逾時時間。伺服器将會在這個時間後關閉連接配接。可選的第二個參數指定了在響應頭keep-alive: timeout=time中的time值。這個頭能夠讓一些浏覽器主動關閉連接配接,這樣伺服器就不必要去關閉連接配接了。沒有這個參數,nginx不會發送keep-alive響應頭(盡管并不是由這個頭來決定連接配接是否“keep-alive”)

兩個參數的值可并不相同

注意不同浏覽器怎麼處理“keep-alive”頭

msie和opera忽略掉"keep-alive: timeout=<n>" header.

msie保持連接配接大約60-65秒,然後發送tcp rst

opera永久保持長連接配接

mozilla keeps the connection alive for n plus about 1-10 seconds.

konqueror保持長連接配接n秒

lingering_timeout

文法 lingering_timeout time

預設值 5s

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

resolver_timeout

文法 resolver_timeout time 

預設值 30s

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

proxy_connect_timeout

文法 proxy_connect_timeout time 

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

這個不是等待後端傳回頁面的時間,那是由proxy_read_timeout聲明的。如果你的upstream伺服器起來了,但是hanging住了(例如,沒有足夠的線程處理請求,是以把你的請求放到請求池裡稍後處理),那麼這個聲明是沒有用的,由于與upstream伺服器的連接配接已經建立了。

proxy_read_timeout

文法 proxy_read_timeout time 

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

proxy_send_timeout

文法 proxy_send_timeout time 

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

proxy_upstream_fail_timeout(fail_timeout)

文法 server address [fail_timeout=30s]

預設值 10s

上下文 upstream

說明 upstream子產品下 server指令的參數,設定了某一個upstream後端失敗了指定次數(max_fails)後,該後端不可操作的時間,預設為10秒

繼續閱讀