php-fpm nginx 超時參數設置

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

request_terminate_timeout 適用於,當max_execution_time因爲某種緣由沒法終止腳本的時候,會把這個php-fpm請求幹掉。nginx

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。web

這幾個 nginx 參數的主語都是 nginx,因此 fastcgi_connect_timeout 的意思是 nginx 鏈接到 fastcgi 的超時時間,fastcgi_read_timeout 是 nginx 讀取 fastcgi 的內容的超時時間,fastcgi_send_timeout 是 nginx 發送內容到 fastcgi 的超時時間。php-fpm

Nginx 504 Gateway Time-out的含義是沒有請求到能夠執行的PHP-CGI。進程

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

相關文章
相關標籤/搜索