一、啥時(shí)候用到
用來配置請求資源和處事器返回的時(shí)間,擔(dān)保一個(gè)請求占用固按時(shí)間,超出后報(bào)504超時(shí)!這樣可以擔(dān)保一個(gè)請求占用過長時(shí)間。
二、主要參數(shù)
利用nginx處事器假如碰著timeou環(huán)境時(shí)可以如下配置參數(shù),利用fastcgi:fastcgi_connect_timeout 75; 鏈接
fastcgi_read_timeout 600; 讀取
fastcgi_send_timeout 600; 發(fā)請求
這兩個(gè)選項(xiàng).
fastcgi_read_timeout是指fastcgi歷程向nginx歷程發(fā)送response的整個(gè)進(jìn)程的超時(shí)時(shí)間
fastcgi_send_timeout是指nginx歷程向fastcgi歷程發(fā)送request的整個(gè)進(jìn)程的超時(shí)時(shí)間
這兩個(gè)選項(xiàng)默認(rèn)都是秒(s),可以手動(dòng)指定為分鐘(m),小時(shí)(h)等
三、其他常用參數(shù)以及參數(shù)說明 keepalive_timeout 600; 毗連超時(shí)時(shí)間,1分鐘,詳細(xì)時(shí)間可以按照請求(譬喻靠山導(dǎo)入)需要的時(shí)間來配置proxy_connect_timeout 600; 1分鐘
proxy_read_timeout 600; 1分鐘
nginx超時(shí)設(shè)置參數(shù)說明:
keepalive_timeout
語法 keepalive_timeout timeout [ header_timeout ]
默認(rèn)值 75s
上下文 http server location
說明 第一個(gè)參數(shù)指定了與client的keep-alive毗連超時(shí)時(shí)間。處事器將會(huì)在這個(gè)時(shí)間后封鎖毗連。可選的第二個(gè)參數(shù)指定了在響應(yīng)頭Keep-Alive: timeout=time中的time值。這個(gè)頭可以或許讓一些欣賞器主動(dòng)封鎖毗連,這樣處事器就不須要去封鎖毗連了。沒有這個(gè)參數(shù),nginx不會(huì)發(fā)送Keep-Alive響應(yīng)頭(盡量并不是由這個(gè)頭來抉擇毗連是否“keep-alive”)
兩個(gè)參數(shù)的值可并不溝通
留意差異欣賞器怎么處理懲罰“keep-alive”頭
MSIE和Opera忽略掉"Keep-Alive: timeout=<N>" header.
MSIE保持毗連約莫60-65秒,然后發(fā)送TCP RST
Opera永久保持長毗連
Mozilla keeps the connection alive for N plus about 1-10 seconds.
Konqueror保持長毗連N秒
proxy_connect_timeout
語法 proxy_connect_timeout time
默認(rèn)值 60s
上下文 http server location
說明 該指令配置與upstream server的毗連超時(shí)時(shí)間,有須要記著,,這個(gè)超時(shí)不能高出75秒。
這個(gè)不是期待后端返回頁面的時(shí)間,那是由proxy_read_timeout聲明的。假如你的upstream處事器起來了,可是hanging住了(譬喻,沒有足夠的線程處理懲罰請求,所以把你的請求放到請求池里稍后處理懲罰),那么這個(gè)聲明是沒有用的,由于與upstream處事器的毗連已經(jīng)成立了。
proxy_read_timeout
語法 proxy_read_timeout time
默認(rèn)值 60s
上下文 http server location
說明 該指令配置與署理處事器的讀超時(shí)時(shí)間。它抉擇了nginx會(huì)期待多長時(shí)間來得到請求的響應(yīng)。這個(gè)時(shí)間不是得到整個(gè)response的時(shí)間,而是兩次reading操縱的時(shí)間。
client_header_timeout
語法 client_header_timeout time
默認(rèn)值 60s
上下文 http server
說明 指定期待client發(fā)送一個(gè)請求頭的超時(shí)時(shí)間(譬喻:GET / HTTP/1.1).僅當(dāng)在一次read中,沒有收到請求頭,才會(huì)算成超時(shí)。假如在超時(shí)時(shí)間內(nèi),client沒發(fā)送任何對象,nginx返回HTTP狀態(tài)碼408(“Request timed out”)
client_body_timeout
語法 client_body_timeout time
默認(rèn)值 60s
上下文 http server location
說明 該指令配置請求體(request body)的讀超時(shí)時(shí)間。僅當(dāng)在一次readstep中,沒有獲得請求體,就會(huì)設(shè)為超時(shí)。超時(shí)后,nginx返回HTTP狀態(tài)碼408(“Request timed out”)
lingering_timeout
語法 lingering_timeout time
默認(rèn)值 5s
上下文 http server location
說明 lingering_close生效后,在封鎖毗連前,會(huì)檢測是否有用戶發(fā)送的數(shù)據(jù)達(dá)隨處事器,假如高出lingering_timeout時(shí)間后還沒有數(shù)據(jù)可讀,就直接封鎖毗連;不然,必需在讀取完毗連緩沖區(qū)上的數(shù)據(jù)并揚(yáng)棄掉后才會(huì)封鎖毗連。
resolver_timeout
語法 resolver_timeout time
默認(rèn)值 30s
上下文 http server location
說明 該指令配置DNS理會(huì)超時(shí)時(shí)間
proxy_send_timeout
語法 proxy_send_timeout time
默認(rèn)值 60s
上下文 http server location
說明 這個(gè)指定配置了發(fā)送請求給upstream處事器的超時(shí)時(shí)間。超時(shí)配置不是為了整個(gè)發(fā)送期間,而是在兩次write操縱期間。假如超時(shí)后,upstream沒有收到新的數(shù)據(jù),nginx會(huì)封鎖毗連
proxy_upstream_fail_timeout(fail_timeout)
語法 server address [fail_timeout=30s]
默認(rèn)值 10s
上下文 upstream
說明 Upstream模塊下 server指令的參數(shù),配置了某一個(gè)upstream后端失敗了指定次數(shù)(max_fails)后,該后端不行操縱的時(shí)間,默認(rèn)為10秒
四、實(shí)例
這里來看一個(gè)把Nginx的超時(shí)時(shí)間上調(diào)的例子。
看看時(shí)間是否切合要求,在nginx.config內(nèi)里的三個(gè)參數(shù):
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;