一、啥時候用到
用來配置請求資源和處事器返回的時間,擔保一個請求占用固按時間,超出后報504超時!這樣可以擔保一個請求占用過長時間。
二、主要參數
利用nginx處事器假如碰著timeou環境時可以如下配置參數,利用fastcgi:fastcgi_connect_timeout 75; 鏈接
fastcgi_read_timeout 600; 讀取
fastcgi_send_timeout 600; 發請求
這兩個選項.
fastcgi_read_timeout是指fastcgi歷程向nginx歷程發送response的整個進程的超時時間
fastcgi_send_timeout是指nginx歷程向fastcgi歷程發送request的整個進程的超時時間
這兩個選項默認都是秒(s),可以手動指定為分鐘(m),小時(h)等
三、其他常用參數以及參數說明 keepalive_timeout 600; 毗連超時時間,1分鐘,詳細時間可以按照請求(譬喻靠山導入)需要的時間來配置proxy_connect_timeout 600; 1分鐘
proxy_read_timeout 600; 1分鐘
nginx超時設置參數說明:
keepalive_timeout
語法 keepalive_timeout timeout [ header_timeout ]
默認值 75s
上下文 http server location
說明 第一個參數指定了與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秒
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操縱的時間。
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”)
lingering_timeout
語法 lingering_timeout time
默認值 5s
上下文 http server location
說明 lingering_close生效后,在封鎖毗連前,會檢測是否有用戶發送的數據達隨處事器,假如高出lingering_timeout時間后還沒有數據可讀,就直接封鎖毗連;不然,必需在讀取完毗連緩沖區上的數據并揚棄掉后才會封鎖毗連。
resolver_timeout
語法 resolver_timeout time
默認值 30s
上下文 http server location
說明 該指令配置DNS理會超時時間
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.config內里的三個參數:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
以上的單元是秒。
假如利用了Nginx的署理,可以在塊里加上:
proxy_connect_timeout 300s;proxy_send_timeout 300s;
proxy_read_timeout 300s;