增加 FcgidMaxProcesses 并不能帮助解决“mod_fcgid:无法申请进程槽”错误

增加 FcgidMaxProcesses 并不能帮助解决“mod_fcgid:无法申请进程槽”错误

我有一个具有大量资源的专用 Apache 服务器。

  • 内存——64GB
  • 核心 - 20
  • 使用 CentOS 6.7 x64

图片 - 使用 phpinfo 进行 FCGI 统计

我运行 Magento 应用程序,以 MySQL 作为数据库引擎,该引擎也部署在单独的资源丰富的专用服务器上。

网站运行一个月以来一直很好,但突然开始出现错误,尽管它没有负载/流量-

图像 - 使用 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 阿帕奇 阿帕奇 /var/run/mod_fcgid/sock
    644 根 根 /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 的值没有任何区别? 还有其他配置文件需要更改吗?

我有并行安装。挖掘 /etc 文件夹时,我遇到了另一个服务,我猜可能会影响 fcgi/FastCGI 操作:

  1. php-fpm
  2. sw-引擎-fpm

Fcgid 是否依赖任何此类服务来限制其进程?我该如何检测?

请让我认清现实。

提前致谢。

答案1

问题现已解决。

并且问题与 FCGID 或任何其他 Apache 模块配置无关。

服务器性能突然恶化的原因是攻击 是的,没错!虽然这不是 DDoS,但攻击者使用不同的查询字符串模式(SQL 注入)进行连续请求,并且目标页面的页面加载时间(不包括查询字符串参数)约为 3 秒,导致达到 FCGID 进程的阈值限制。

我在启用mod_status这直接凸显了这种违反规定的企图。

我封锁了该用户的 IP,一分钟之内所有操作都恢复正常。

答案2

关于 FcgidMaxProcesses、Nginx+FPM 和可能的攻击......

但请记住,如果你使用 Fcgid,你还需要检查

FcgidMaxProcessesPerClass xxx

这意味着服务器上的任何用户(即每个用户)都有最大数量的可用进程,并且当达到该限制时,就无法应用新的插槽......

答案3

得不到你。

mod_fcgid: can't apply process slot- 这是 Apahce+FCGI 的问题,如果您的负载巨大,则无法使用 Apahce+FCGI 解决。

但如果您为此网站切换 Nngix+PHP-FPM,问题就可以解决

sw-engine-fpm-它是 Plesk 面板服务,对客户网站没有任何影响。

如果您已经通过自动安装程序安装了 Nginx 和 PHP-FPM,则可以在域上启用 Nginx+PHP-FPM 处理 PHP:

Plesk Nginx+PHP-FPM 1

并将其打开:

Plesk Nginx PHP-FPM 2

相关内容