У меня есть выделенный сервер apache с большими ресурсами.
и
Изображение - статистика FCGI с phpinfo
Я запускаю приложение Magento с MySQL в качестве движка базы данных, который также развернут на отдельном выделенном сервере с большими ресурсами.
Веб-сайт работал нормально с месяца, но внезапно он начал выдавать ошибку, хотя он не загружен / трафик-
Изображение - Статистика загрузки сервера с HTOP
mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
с временной недоступной ошибкой службы 503 в браузере.
Итак, я выполнил следующие шаги, чтобы избавиться от него (но ни один из них на самом деле не работал):
Я увеличил значение «FcgidMaxProcesses» в fcgid.conf и перезапустил apache, но это не имело никакого значения. Ошибки все еще есть.
Я проверил право собственности на файл и разрешение
755 apache apache / var / run / mod_fcgid / sock
644 корень корень / var / run / mod_fcgid / fcgid_shm
Перезагрузил сервер, ожидая, что существующие процессы 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:
Зависит ли 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 в домене:
И включите его: