php-fpm設定逾時的方法:1、設定內容「request_terminate_timeout = 30」;2、設定內容「max_execution_time = 30」。
本文操作環境:nginx1.0.4系統、PHP7.1版,DELL G3電腦
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 的內容的逾時時間,fastcgi_send_timeout 是到公司發送的內容。超時時間。
Nginx 504 Gateway Time-out的意思是沒有請求到可以執行的PHP-CGI。
Nginx 502 Bad Gateway的意思是請求的PHP-CGI已經執行,但由於讀取資源的等沒有執行完畢而導致PHP-CGI進程終止。
推薦學習:《PHP影片教學》
以上是php-fpm怎麼設定超時的詳細內容。更多資訊請關注PHP中文網其他相關文章!