Apache-2.4

Apache 2.4 和 PHP-FPM 超時是由於我找不到的東西造成的

  • November 25, 2018

因此,我正在尋找使用 PHP-FPM 在我的 Apache 2.4 伺服器上不斷出現超時的原因。這是錯誤:

[proxy_fcgi:error] [pid ###] (70007)The timeout 
specified has expired:[client XXXXXXXX] AH01075 : 
Error dispatching request to:, referer: http://address

在以下配置文件中,我玩過我顯示的每個超時。我在 fpm 中有兩個池:

[www]
;user and group info and listening ip and such up here
access_log = /path/to/access.log
request_terminate_timeout = 15
php_admin_value[error_log] = /path/to/error.log
php_admin_flag[log_errors] = on

第二個:

[app]
;user and group info and listening ip and such up here
access_log = /path/to/access.log
request_terminate_timeout = 300
php_admin_value[error_log] = /path/to/error.log
php_admin_flag[log_errors] = on

和我的 php.ini:

max_execution_time = 300
max_input_time = 300
default_socket_timeout = 300

那麼我的Apache配置:

Timeout 80 
<FilesMatch "^(some | names | of | files)\.php$">
   SetHandler "proxy:fcgi://123.45.5.67:7891"
</FilesMatch>

<FilesMatch "^!(some | names | of | files)\.php$">
   SetHandler "proxy:fcgi://123.45.5.67:5432"
</FilesMatch>

顯然,httpd.conf 中還有很多內容,但沒有指定超時(不相關的 ProxyPass 設置為 300 秒除外)。我已經閱讀了這個文章:https ://unix.stackexchange.com/questions/270655/how-to-find-and-edit-apache-timeout ,但我已經檢查了我們的更新檔rpm -q --changelog httpd | less,並且有一個針對該錯誤的更新檔. 當我只有一個游泳池時,超時也更加混亂。從 24 秒到 6.7 分鐘不等(以 5Kb/s 的節流上傳速度;程式碼沒有問題,是有目的的測試)。有一段時間它似乎與 相關request_terminate_timeout,但這種相關性消失了。

謝謝你的幫助。

因此,事實證明它與油門速度有關。它是如此之低,以至於請求超時。我通過更改 RequestReadTimeout 解決了這個問題:

RequestReadTimeout header=20-120,MinRate=50 body=20,MinRate=50

請注意,如果來自使用者的流量在到達您的伺服器之前要通過代理或防火牆,這也很有幫助。請求和數據之間的時間可能很長。

引用自:https://serverfault.com/questions/873135