Apache proxfy_fcgi - Ошибка отправки запроса на

У меня есть облачный хостинг в Google, это отстойно, если честно, но я пытаюсь это сделать, я установил стек LAMP на виртуальную машину и поместил свой сайт в htdocs. Когда я пытаюсь получить доступ к моему сайту, он дает мне request timeout, но иногда он работает 5 минут или около того.

Когда я вижу журналы ошибок apache, это дает мне этот

075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.185819 2015] [proxy_fcgi:error] [pid 4995:tid 140183521683200] (70007)The timeout specified has expired: [client 162.158.255.169:34198] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.487458 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 4995 exit signal Segmentation fault (11)
[Tue Oct 27 18:12:55.787973 2015] [proxy_fcgi:error] [pid 5063:tid 140183530075904] (70007)The timeout specified has expired: [client 199.27.133.137:13151] AH01075: Error dispatching request to : (polling), referer: http://whichtube.com/watch/g9-4dCeFQng/allama-nasir-abbas-jawab-ali-as-nae-talwar-kayou-na-uthai.html
[Tue Oct 27 18:12:57.542883 2015] [proxy_fcgi:error] [pid 5329:tid 140183521683200] (70007)The timeout specified has expired: [client 173.245.56.198:51348] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:57.976752 2015] [proxy_fcgi:error] [pid 5063:tid 140183479719680] (70007)The timeout specified has expired: [client 173.245.56.198:63779] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:58.993666 2015] [proxy_fcgi:error] [pid 5194:tid 140183496505088] (70007)The timeout specified has expired: [client 162.158.255.141:16226] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:59.196701 2015] [proxy_fcgi:error] [pid 5329:tid 140183513290496] (70007)The timeout specified has expired: [client 173.245.56.198:32819] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:01.462039 2015] [proxy_fcgi:error] [pid 5329:tid 140183504897792] (70007)The timeout specified has expired: [client 199.27.128.166:48057] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:07.518999 2015] [proxy_fcgi:error] [pid 5063:tid 140183471326976] (70007)The timeout specified has expired: [client 173.245.56.198:13694] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:16.804990 2015] [proxy_fcgi:error] [pid 5261:tid 140183513290496] (70007)The timeout specified has expired: [client 199.27.128.134:28694] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:33.055860 2015] [proxy_fcgi:error] [pid 5328:tid 140183236331264] (70007)The timeout specified has expired: [client 39.41.139.220:52154] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:57.391361 2015] [proxy_fcgi:error] [pid 5063:tid 140183521683200] (70007)The timeout specified has expired: [client 39.41.139.220:52029] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:57.552542 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 5063 exit signal Segmentation fault (11)

Мой сайт находится в PHP, я не изменил ничего другого, кроме разрешения на директорию. Есть ли что-то, что мне не хватает?

Ответ 1

У меня тоже была эта проблема. Возможно, вам захочется найти часть жесткого кода и соединение с другим недоступным сервером в вашем коде. (например, локальный IP-адрес, недоступный в Интернете).

Для моего, я проверил php-fpm.log на моем сервере, и я обнаружил, что мое приложение пытается подключиться к старому серверу (неправильный IP), и он сталкивается с тайм-аутом.

Ответ 2

Для меня перезапуск php-fpm сделал свою работу. Посмотрев в логе, как советовал @varlogtim. Журнал показал, что за последние 12 часов не было активности...

Ответ 3

У меня была та же проблема, оказывается, в Apache есть модуль, который обрабатывает тайм-ауты, называемые mod_reqtimeout

Значение по умолчанию (вы не увидите его в http.conf по умолчанию):

RequestReadTimeout handshake=0 header=20-40,MinRate=500 body=20,MinRate=500

В моем случае я загружал файл с помощью простого представления HTML-формы, поэтому этот файл технически является частью заголовка, и в конфигурации по умолчанию говорится, что срок действия заголовка истекает через 20-40 секунд. Значение 20-40 довольно круто, потому что время ожидания составляет 20 секунд, но если в секунду будет отправлено 500 байт, добавится дополнительная секунда времени ожидания, пока оно не достигнет 40 секунд, а затем время ожидания, несмотря ни на что.

Я загружаю файлы большего размера на своем веб-сайте, поэтому я добавил эту строку в мой файл httpd.conf:

RequestReadTimeout handshake=0 header=20-600,MinRate=500 body=20,MinRate=500

Таким образом, пока мой пользователь отправляет данные со скоростью не менее 500 байт/с, запрос не будет превышен до максимума. 600 секунд (лучше прочитайте документацию, не указывайте меня по пропускной способности)

На самом деле это довольно крутой модуль Apache, но он не очень хорошо известен, так как люди рекомендуют изменять другие настройки времени ожидания Apache в других подобных "Указанное время ожидания истекло:" проблемы, связанные с PHP-FPM, но эта проблема возникает с любой публикацией, которая занимает более 40 секунд, которые будут отправлены по умолчанию в Apache.

Ответ 4

Похоже, что ваш PHP-код занимает больше времени, чем установленный тайм-аут. Когда apache загружает страницу PHP с помощью fcgi, он отправляет запрос службы PHP-FPM для обработки. Если PHP-FPM требует ответа, то вы увидите этот тип тайм-аута. Возможные причины: ваш PHP-код может застревать в цикле или ждать ответа от базы данных, которая занимает особенно много времени.

Чтобы устранить неполадки, я использовал бы версию CLI для PHP, чтобы узнать, завершается ли script в разумные сроки ($ time php/path/to/file.php). В журнале PHP-FPM может быть дополнительная информация (по умолчанию:/var/log/php-fpm.log).