mod_fcgid: read data timeout

D1
На сайте с 10.01.2013
Offline
31
4963

CentOS 7.

PHP: FastCGI + Apache.

MPM Mode: Event

PHP max_execution_time 60

PHP memory_limit 1024M

httpd.conf:

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 100

fcgid.conf:

FcgidMaxRequestsPerProcess 500

FcgidIdleTimeout 60

FcgidProcessLifeTime 30

FcgidMaxProcesses 2000

FcgidMaxProcessesPerClass 250

FcgidMinProcessesPerClass 0

FcgidConnectTimeout 30

FcgidIOTimeout 600

FcgidInitialEnv RAILS_ENV production

FcgidIdleScanInterval 10

В логах постоянно парные ошибки:

Warning: mod_fcgid: read data timeout in 60 seconds, referer: такой-то (Apache error)

Error: End of script output before headers: index.php, referer: тот же самый (Apache error)

Иногда к ним еще добавляется ошибка

Error: 3602#0: *11240 upstream timed out (110: Connection timed out) while reading response header from upstream (nginx error)

Изредка еще и такое:

(32)Broken pipe: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: реферрер

В плане работы с сайтом это все выражается в том, что часто та или иная рандомная страница сайта (на WordPress) либо открывается долго, либо скорее всего вообще не открывается (я не дожидался).

Помогите, плиз, разобраться и устранить эти ошибки.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#1

Какой-то скрипт не успевает выполняться за 60 секунд. Или найти и оптимизировать или костыль в виде увеличения таймаутов.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
Vin_cent
На сайте с 22.01.2010
Offline
171
#2

1. Смотришь в логах апачи номер строчки скрипта, в которой вышла ошибка.

2. Исправляешь ошибку.

D1
На сайте с 10.01.2013
Offline
31
#3

В var/log/httpd/error_log множественные предупреждения:

[Fri Aug 12 17:05:25.080587 2016] [fcgid:warn] [pid 9249:tid 140606750607424] mod_fcgid: process %разные_номера% graceful kill fail, sending SIGKILL

И все. Ссылок на название скрипта и строчку нет.

В других логах тоже все OK. Сайт на php работает без ошибок, ибо отлажен за несколько лет.

Andreyka
На сайте с 19.02.2005
Offline
822
#4

Если сайт работает без ошибок - игнорируй сообщения в логах

Не стоит плодить сущности без необходимости
Vin_cent
На сайте с 22.01.2010
Offline
171
#5
delta1979:
В var/log/httpd/error_log множественные предупреждения:

[Fri Aug 12 17:05:25.080587 2016] [fcgid:warn] [pid 9249:tid 140606750607424] mod_fcgid: process %разные_номера% graceful kill fail, sending SIGKILL

И все. Ссылок на название скрипта и строчку нет.

В других логах тоже все OK. Сайт на php работает без ошибок, ибо отлажен за несколько лет.

Эти warn можешь игнорировать. Ты писал: "Error: End of script output before headers: index.php". Поставь режим логов в апачи на debug, чтобы написал номер строчки. Тебе нужно найти в этом index.php код, который долго не выполняется.

D1
На сайте с 10.01.2013
Offline
31
#6

Помогло вот это: proxy_read_timeout 300;

Разом все ошибки убило (ну, кроме warn: (32)Broken pipe: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: реферрер)

Тема закрыта.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий