前兩天做一個文件上傳趁桃,因功能邏輯特殊,需要上傳文件并導(dǎo)入十幾萬條?的數(shù)據(jù)油啤,excel?文件過大的話可以采用?分段讀取數(shù)據(jù)的方式進行操作
當(dāng)我ajax?請求?插入數(shù)據(jù)的時候? 超過了 60秒后,頁面就返回了404 础废,然后就開始找問題罕模。
先找要找到php.ini?文件? Linux?命令行?可這樣運行:?php -r "phpinfo();" | grep php.ini
修改完后?重啟?php-fpm? :service php-fpm restart
?nginx超時配置參數(shù)說明:
? 1.? keepalive_timeout ?600; ? 連接超時時間蒿讥,1分鐘抛腕,具體時間可以根據(jù)請求(例如后臺導(dǎo)入)需要的時間來設(shè)置
2.使用nginx服務(wù)器如果遇到timeou情況時可以如下設(shè)置參數(shù),使用fastcgi:
? ? ?fastcgi_connect_timeout 75; ?鏈接
? ? ?fastcgi_read_timeout 600; ? 讀取? ??
? ? ?fastcgi_send_timeout 600; ? 發(fā)請求
成功解決問題摔敛。
其他nginx?配置參數(shù):
一全封、主要參數(shù)
使用nginx服務(wù)器如果遇到timeou情況時可以如下設(shè)置參數(shù)刹悴,使用fastcgi:
? ? ?fastcgi_connect_timeout 75; ?鏈接
? ? ?fastcgi_read_timeout 600; ? 讀取
? ? ?fastcgi_send_timeout 600; ? 發(fā)請求
這兩個選項.
fastcgi_read_timeout是指fastcgi進程向nginx進程發(fā)送response的整個過程的超時時間
fastcgi_send_timeout是指nginx進程向fastcgi進程發(fā)送request的整個過程的超時時間
? ? ?這兩個選項默認都是秒(s),可以手動指定為分鐘(m),小時(h)等
二、其他常用參數(shù)以及參數(shù)說明
? ? keepalive_timeout ?600; ? 連接超時時間子房,1分鐘,具體時間可以根據(jù)請求(例如后臺導(dǎo)入)需要的時間來設(shè)置
? ? proxy_connect_timeout 600; ? ?1分鐘
? ? proxy_read_timeout 600; ? ?1分鐘
nginx超時配置參數(shù)說明:
keepalive_timeout?
語法 keepalive_timeout timeout [ header_timeout ]
默認值 75s
上下文 http server location
說明 第一個參數(shù)指定了與client的keep-alive連接超時時間田度。服務(wù)器將會在這個時間后關(guān)閉連接解愤∽列可選的第二個參數(shù)指定了在響應(yīng)頭Keep-Alive: timeout=time中的time值梦鉴。這個頭能夠讓一些瀏覽器主動關(guān)閉連接,這樣服務(wù)器就不必要去關(guān)閉連接了魄宏。沒有這個參數(shù)存筏,nginx不會發(fā)送Keep-Alive響應(yīng)頭(盡管并不是由這個頭來決定連接是否“keep-alive”)
兩個參數(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?
默認值 60s
上下文 http server location
說明 該指令設(shè)置與upstream server的連接超時時間,有必要記住券册,這個超時不能超過75秒垂涯。
這個不是等待后端返回頁面的時間,那是由proxy_read_timeout聲明的骄蝇。如果你的upstream服務(wù)器起來了操骡,但是hanging住了(例如,沒有足夠的線程處理請求吃既,所以把你的請求放到請求池里稍后處理)跨细,那么這個聲明是沒有用的冀惭,由于與upstream服務(wù)器的連接已經(jīng)建立了掀鹅。
proxy_read_timeout
語法 proxy_read_timeout time?
默認值 60s
上下文 http server location
說明 該指令設(shè)置與代理服務(wù)器的讀超時時間媒楼。它決定了nginx會等待多長時間來獲得請求的響應(yīng)划址。這個時間不是獲得整個response的時間,而是兩次reading操作的時間夺颤。
client_header_timeout
語法 client_header_timeout time
默認值 60s
上下文 http server
說明 指定等待client發(fā)送一個請求頭的超時時間(例如:GET / HTTP/1.1).僅當(dāng)在一次read中痢缎,沒有收到請求頭,才會算成超時世澜。如果在超時時間內(nèi)独旷,client沒發(fā)送任何東西,nginx返回HTTP狀態(tài)碼408(“Request timed out”)
client_body_timeout?
語法 client_body_timeout time
默認值 60s
上下文 http server location
說明 該指令設(shè)置請求體(request body)的讀超時時間寥裂。僅當(dāng)在一次readstep中嵌洼,沒有得到請求體,就會設(shè)為超時封恰。超時后麻养,nginx返回HTTP狀態(tài)碼408(“Request timed out”)
lingering_timeout
語法 lingering_timeout time
默認值 5s
上下文 http server location
說明 lingering_close生效后,在關(guān)閉連接前诺舔,會檢測是否有用戶發(fā)送的數(shù)據(jù)到達服務(wù)器回溺,如果超過lingering_timeout時間后還沒有數(shù)據(jù)可讀混萝,就直接關(guān)閉連接遗遵;否則,必須在讀取完連接緩沖區(qū)上的數(shù)據(jù)并丟棄掉后才會關(guān)閉連接逸嘀。
resolver_timeout
語法 resolver_timeout time?
默認值 30s
上下文 http server location
說明 該指令設(shè)置DNS解析超時時間
proxy_send_timeout
語法 proxy_send_timeout time?
默認值 60s
上下文 http server location
說明 這個指定設(shè)置了發(fā)送請求給upstream服務(wù)器的超時時間车要。超時設(shè)置不是為了整個發(fā)送期間,而是在兩次write操作期間崭倘。如果超時后翼岁,upstream沒有收到新的數(shù)據(jù),nginx會關(guān)閉連接
proxy_upstream_fail_timeout(fail_timeout)
語法 server address [fail_timeout=30s]
默認值 10s
上下文 upstream
說明 Upstream模塊下 server指令的參數(shù)司光,設(shè)置了某一個upstream后端失敗了指定次數(shù)(max_fails)后琅坡,該后端不可操作的時間,默認為10秒