Apache + PHP5: 504 Gateway timeout

php apache apache2

Вопрос скорее теоретический.

Apache 2.2.x работает в связке с PHP 5.x. PHP стоит в качестве CGI-приложения (не модуля), ворочает большие запросы MySQL. Что вызывает получение 504 ошибки? Вот что попадает в error_log апача:

[Thu Feb 24 14:27:09 2011] [warn] [client 127.0.0.1] Timeout waiting for output from CGI script /vhosts/path-to-script
[Thu Feb 24 14:27:09 2011] [error] [client 127.0.0.1] Script timed out before returning headers: php, referer: http://localhost/path-to-script

В лог PHP не попадает вообще ничего. Известно, что скрипт запросы к базе посылает, и на базе они выполняются (видно в SHOW PROCESSLIST).

max_execution_time равно 0, mysql.max_links = Unlimited

Примечание:
Проблема была в значении директивы TimeOut в httpd.conf - по достижении её значения апач прекращает ожидание ответа от CGI-скрипта и выкидывает 504 ошибку. Увеличили TimeOut с 30 до 120 секунд, теперь всё замечательно.

Спасибо большое всем за ответы!
Ответы:
Неверно настроено если вообще. Обычный таймаут или упал процесс php если иногда во время нагрузки.
Оптимизировать бд  - добавить индексы, так быть не должо.
Увеличить время Timeout waiting for output  в апаче, чтобы он дожидался ответа.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.