ngnix+php 文件上傳處理超時的解決辦法


頁面的超時時間同時受nginx和php的配置影響。

當是nginx影響到時,出錯提醒如下圖(圖1):

 =============================================================

而當是php的腳本最大執行時間(默認值為30秒)影響到時,出錯的提醒如下圖(圖2):

 

nginx配置中fastcgi_read_timeout指定了nginx接受后端fastcgi響應請求超時時間,默認是60秒,如果fastcgi在規定時間內沒有返回數據,就會直接返回圖1的提示給客戶端。

所以把php的腳本最大執行時間設置大一點,並在及時返回給nginx,這樣就避免了超時的問題。

設置php的腳本最大執行時間使用這個函數:bool set_time_limit ( int $seconds );

及時返回數據給nginx可以這么寫:

if ($currentRow % 500 == 0) { // 每處理500行數據就返回一個空格並清空輸出緩存
echo " ";
ob_flush();
flush();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM