Я получаю зависания FastCGI, когда некоторые веб-сайты доступны, но другие возвращают ошибку 503 Service Unavailable (если я достаточно долго жду ответа). У него много-много доменов на этом хосте, недоступных. Это сервер с 1000 доменами на нем. Он работал нормально, но иногда медленно, пока мы не перешли на FastCGI. Затем он ускорился, но тогда многие сайты стали недоступны. На двух других серверах, которые у нас есть, FastCGI работает нормально с 1000 доменами, и я не могу определить, что такого особенного в этой конфигурации.
Это CentOS 5. Я постоянно вижу эти записи в / etc / httpd / logs / error_log. Может быть, они подскажут, что мне нужно делать?
[warn] [client 50.50.50.50] mod_fcgid: can't apply process slot for /home/example/public_html/example.com/index.php
[warn] mod_fcgid: too much processes, please increase FCGID_MAX_APPLICATION
[error] [client 50.50.50.50] Premature end of script headers: index.php
[warn] [client 50.50.50.50] mod_fcgid: read data timeout in 400 seconds
Наш /etc/httpd/conf/php.conf показывает это расположение:
# Fastcgi configuration for PHP5
LoadModule fcgid_module modules/mod_fcgid.so
MaxRequestsPerProcess 1000
#FcgidMaxProcesses 100
#FcgidProcessLifeTime 60
MaxProcessCount 500
IPCCommTimeout 400
IdleTimeout 400
ProcessLifeTime 60
#DefaultMinClassProcessCount 120
AddHandler fcgid-script .php5 .php4 .php .php3 .php2 .phtml
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php5
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php4
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php3
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php2
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .phtml
Ошибки слота процесса устраняются путем определения узкого места загрузки сервера. В моем случае это был дисковый ввод-вывод. Я исправил это, запустив эту команду в веб-каталогах. В этом случае все веб-сайты находятся в / home:
chattr -R + A / home
Однако, прежде чем вы это сделаете, помните о последствиях:
http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html
и
http://en.wikipedia.org/wiki/Stat_%28Unix%29
Обратите внимание, что chattr работает только с существующими файлами. Более новые файлы не получат этот атрибут, пока вы не запустите chattr повторно. Если вы разместили / home на другом разделе, вы можете отредактировать свой / etc / fstab и добавить параметр noatime в этот раздел.
У вас также может быть задание cron, которое время от времени запускает chattr в вашей папке / tmp, чтобы ускорить такие вещи, как выполнение страницы PHP (которая обычно кэшируется в / tmp).
Другая ошибка, касающаяся «[warn] mod_fcgid: слишком много процессов, пожалуйста, увеличьте FCGID_MAX_APPLICATION» - это, по-видимому, ошибка, сообщенная командой Apache FastCGI. Некоторые люди исправляют это, перекомпилировав исходный код из последней версии кода. Некоторые исправляют это, закомментировав эту ошибку из исходного кода C и перекомпилировав.