Назад | Перейти на главную страницу

Увеличение FcgidMaxProcesses не помогает решить ошибку «mod_fcgid: невозможно применить слот процесса»

У меня есть выделенный сервер apache с большими ресурсами.

и

Изображение - статистика FCGI с phpinfo

Я запускаю приложение Magento с MySQL в качестве движка базы данных, который также развернут на отдельном выделенном сервере с большими ресурсами.

Веб-сайт работал нормально с месяца, но внезапно он начал выдавать ошибку, хотя он не загружен / трафик-

Изображение - Статистика загрузки сервера с HTOP

mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper с временной недоступной ошибкой службы 503 в браузере.

Итак, я выполнил следующие шаги, чтобы избавиться от него (но ни один из них на самом деле не работал):

  1. Я увеличил значение «FcgidMaxProcesses» в fcgid.conf и перезапустил apache, но это не имело никакого значения. Ошибки все еще есть.

  2. Я проверил право собственности на файл и разрешение

    755 apache apache / 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 составляет в среднем 70 МБ

У меня вопрос: почему увеличение значения FcgidMaxProcesses не имеет никакого значения? Есть ли какой-либо другой файл конфигурации, который нужно изменить?

у меня есть параллельный плеск установлены. Копаясь в папке / etc, я наткнулся на другие службы, которые, как я полагаю, могут влиять на операции fcgi / FastCGI:

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

Зависит ли Fcgid от какой-либо такой службы, чтобы ограничить свои процессы? Как мне это определить?

Пожалуйста, дайте мне осознать реальность.

Заранее спасибо.

хорошо о FcgidMaxProcesses, Nginx + FPM и возможных атаках ...

но помните, что если вы используете Fcgid, вам также необходимо проверить

FcgidMaxProcessesPerClass xxx

это означает, что у любого пользователя на сервере (то есть для каждого пользователя) есть максимальное количество доступных процессов, и когда вы достигнете этого предела, новый слот не может быть применен ...

Проблема решена.

И проблема не была связана с FCGID или какой-либо другой конфигурацией модуля Apache.

Причина внезапного ухудшения поведения сервера заключалась в атака Да это правильно! Хотя это был не DDoS, а непрерывные запросы злоумышленника с разными шаблонами строки запроса (SQL-инъекция) и время загрузки целевой страницы - за исключением параметра строки запроса - около 3 секунд привели к достижению порогового лимита процесса FCGID.

Я узнал об этом, когда включил mod_status что прямо указывало на такие попытки взлома.

Я заблокировал IP этого пользователя, и в течение минуты все операции вернулись в нормальное состояние.

Не могу тебя достать.

mod_fcgid: can't apply process slot - это проблема Apahce + FCGI, и если у вас большая нагрузка, ее невозможно решить с помощью Apahce + FCGI.

Но решается, если переключить Nngix + PHP-FPM для этого сайта.

sw-engine-fpm -это панельный сервис Plesk, который никак не влияет на веб-сайты клиентов.

Если вы установили Nginx и PHP-FPM через автоустановщик, вы можете включить обработку PHP с помощью Nginx + PHP-FPM в домене:

И включите его: