Ошибка 504 Тайм-аут шлюза

Я хотел бы знать, всегда ли ошибка 504 Тайм-аут шлюза исходит от балансировщика нагрузки, или он также может быть вызван Apache и PHP-кодом, который он запускает?

Спасибо

3 ответа

Обычно это происходит, когда балансировщик нагрузки ожидает ответа от apache, а apache не дает ответ в течение периода ожидания балансировщика нагрузки. Таким образом, он возвращает время ожидания шлюза 504. О том, что приводит к тому, что apache не отвечает, - это то, что вы можете сказать только потому, что не предоставили много общей информации о том, что обслуживает apache. Посмотрите логи apache, чтобы узнать больше деталей. обычно получают доступ к журналам и журналам ошибок. Увеличьте значение тайм-аута loadbalancer, чтобы посмотреть, поможет ли это. Всегда хорошо иметь кластеризацию на Apache, поэтому вы не получите 504 из-за мертвого экземпляра Apache. Я думаю, что mod_proxy позволяет добиться кластеризации программного обеспечения. Я не уверен проверить на сайте Apache.

Обычно из-за балансировки, потому что Apache(mod_php) или PHP(FastCGI) не работает или занят.

Конечно, это может быть от php. Если php-скрипт находится в каком-то цикле и не "выплевывает", контентное соединение в конечном итоге истечет, а балансировщик сообщит об истечении времени ожидания шлюза.

Этот "цикл" не обязательно должен быть циклом, он может ожидать подключения к какому-либо сервису для чтения данных, таких как mysql/memcache или что-то в этом роде...

Другие вопросы по тегам