Apache-2.2

增加 FcgidMaxProcesses 無助於解決“mod_fcgid: can’t apply process slot”錯誤

  • December 1, 2016

我有一個資源豐富的專用 apache 伺服器。

  • 記憶體 - 64GB
  • 核心 - 20
  • 使用 CentOS 6.7 x64

圖片 - 帶有 phpinfo 的 FCGI 統計資訊

我使用 MySQL 作為數據庫引擎執行 Magento 應用程序,該數據庫引擎也部署在單獨的資源豐富的專用伺服器上。

網站自一個月以來一直執行良好,但突然它開始拋出錯誤,儘管它沒有處於負載/流量狀態 -

圖片 - 使用 HTOP 的伺服器負載統計資訊

mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper 瀏覽器上出現 503 服務臨時不可用錯誤。

所以,我按照以下步驟擺脫它(但它們都沒有真正起作用):

  1. 我在 fcgid.conf 中增加了“FcgidMaxProcesses”的值並重新啟動了 apache,但它沒有任何區別。錯誤仍然存在。
  2. 我檢查了文件所有權和權限

755 apache apache/var/run/mod_fcgid/sock

644 root root/var/run/mod_fcgid/fcgid_shm 3. 重新啟動的伺服器,期望現有的 FCGI 程序被刷新並且程序計數從 0 開始,因此程序計數在幾天內不會達到 FcgidMaxProcesses

下面是我的 fcgid.conf 文件。

我知道超時值太高了,但我想這與此錯誤無關,因為頁面載入時間約為 4-5 秒。

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule !mod_fastcgi.c>
   AddHandler fcgid-script fcg fcgi fpl
</IfModule>

FcgidIPCDir /var/run/mod_fcgid/sock
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

FcgidProcessLifeTime 120
FcgidIdleTimeout 30
FcgidIdleScanInterval 5
FcgidMaxRequestsPerProcess 300
FcgidMaxProcesses 1200
FcgidIOTimeout 18000
FcgidBusyTimeout 18000

/usr/bin/php-cgi 程序的大小平均為 70MB

我的問題是為什麼增加 FcgidMaxProcesses 的值沒有任何區別? 是否還有其他需要更改的配置文件?

我安裝了並行 plesk。探勘 /etc 文件夾,我遇到了另一個可能影響 fcgi/FastCGI 操作的服務:

  1. php-fpm
  2. sw-engine-fpm

Fcgid 是否依賴任何此類服務來限制其程序?我該如何檢測?

請讓我意識到現實。

提前致謝。

問題現已解決。

並且問題與 FCGID 或任何其他 Apache 模組配置無關。

伺服器突然惡化的原因是攻擊 是的,沒錯!雖然不是 DDoS,但攻擊者以不同的查詢字元串模式(SQL 注入)和目標頁面的頁面載入時間(不包括查詢字元串參數)持續請求大約 3 秒,導致 FCGID 程序的門檻值限制命中。

當我啟用直接突出顯示此類破壞嘗試的mod_status時,我開始了解它。

我阻止了該使用者的 IP,並在一分鐘內所有操作恢復正常。

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