BeWiki
Неофициальный справочный ресурс для клиентов хостера BeGet

HTTP Error 502 и HTTP Error 504

Ошибки 502 и 504 по сути родственные и их можно расммотреть в одной статье.

Сайт падает с ошибкой 504(502), что делать?

Скажем сразу, что без тикета в службу в поддержку проблему, скорее всего, решить не получится. Здесь же мы просто попробуем разобрать причины ошибки и как она обычно исправляется.

Выгрузка

Наиболее часто эти ошибки встречаются при выгрузке/импорте/экспорте. 502ая, например, в большинстве случае связана с Bitrix и его синхронизацией с 1С.

Если в вашем случае проблема действительно возникает только при выгрузке/импорте/экспорте - попросите службу поддержки увеличить timeout ответ на стороне NGINX. Обычно этого достаточно.

Вирусы

Более редкая причина - вирусы. Тут типична ситуация - вирус обращается к командному серверу, а его уже нет в живых. Вирус ждёт до победного, лимит времени заканчивается, сайт падает с ошибкой. Нужно чистить сайт от вирусов, так просто сайт к жизни не вернуть.

Других причин не бывает?

Бывают, но они были досточно редки, чтобы мы не вспомнили ни одного такого случая. Но тем не менее бывает и такое - поддержка отлавливает подобные проблемы с помощью трассировки.

А с чем связана данная ошибка?

Запрос к сайту не может выполняться вечно, есть некоторые временные рамки, называемые таймаутами (Timeout). Соответствующую настройку имеют все web-сервера и даже сам PHP.

Если сайт за отведённый промежуток времени не успел ничего сгенерировать ответ, web-сервер генерируют 504ую ошибку.

Если сайт за отведённый промежуток времени успел что-то подать на вывод, но этот вывод не является валидным ответом - web-сервер генерируют 502ую ошибку.

Таймауты обычно достаточно большие, чтобы сгенерировать ответ успели даже самые неспешные и тяжёлые сайты - у BeGet это 60 секунд, да и в общем настроек ниже 30 секунд мы никогда не встречали. Т.е. ошибка всплывает только при выполнении очень ресурсоёмких задач или в случае проблем в коде сайта.