php-fpm nginx 超時參數設置


php-fpm:
request_terminate_timeout = 30
php.ini:
max_execution_time = 30

request_terminate_timeout 適用於,當max_execution_time由於某種原因無法終止腳本的時候,會把這個php-fpm請求干掉。

web請求php執行時間受到2方面控制,一個是php.ini的max_execution_time(要注意的是sleep,http請求等待響應的時間是不算的,這里算的是真正的執行時間),另一個是php-fpm request_terminate_timeout 設置,這個算的是請求開始n秒。
 
當超過這個時間時,PHP-FPM不只會終止腳本的執行,
還會終止執行腳本的Worker進程。所以Nginx會發現與自己通信的連接斷掉了,就會返回給客戶端502錯誤。
 

nginx的關鍵參數是 fastcgi 相關的 timeout,即:fastcgi_connect_timeout,fastcgi_read_timeout,fastcgi_send_timeout。

這幾個 nginx 參數的主語都是 nginx,所以 fastcgi_connect_timeout 的意思是 nginx 連接到 fastcgi 的超時時間,fastcgi_read_timeout 是 nginx 讀取 fastcgi 的內容的超時時間,fastcgi_send_timeout 是 nginx 發送內容到 fastcgi 的超時時間。

Nginx 504 Gateway Time-out的含義是沒有請求到可以執行的PHP-CGI。

Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於讀取資源的等沒有執行完畢而導致PHP-CGI進程終止。


免責聲明!

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



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