Ошибка 502
Ошибка 502 (Bad Gateway) означает, что сервер получил недопустимый или некорректный ответ от другого сервера при обработке запроса.
Как и в случае с другими ошибками, для диагностики полезно использовать логирование. Подробнее — в инструкции по включению логов ошибок Apache.
Возможные причины ошибки 502:
- Скрипты сайта превышают ограничения хостинга
- Ошибка сегментации (
segfault
) - Исчерпаны обработчики Apache
- Технический сбой на сервере
Скрипты сайта превышают ограничения хостинга
Ошибка может возникнуть, если скрипты сайта выходят за пределы ресурсов, выделенных в рамках вашей конфигурации. Это может быть превышение по памяти, времени выполнения или другим параметрам PHP.
Что может помочь:
- Перейти на более мощный тариф, если ресурсы действительно ограничивают работу сайта.
- Ознакомиться с документацией CMS или плагинов, чтобы понять, какие параметры PHP необходимы для корректной работы.
Ошибка сегментации (segfault)
Segfault (segmentation fault) — это критическая ошибка при выполнении кода, когда процесс обращается к недопустимой области памяти. Такое поведение может быть вызвано ошибками в самом скрипте или в стороннем расширении.
Определить, что причина именно в этом, можно при помощи запуска скрипта вручную через SSH. Например:
/opt/php74/bin/php index.php
Segmentation fault
При возникновении такой ошибки обратитесь к разработчику скрипта или стороннему специалисту для диагностики и исправления ошибки.
Если вы используете PHP версии 5.3 или 5.4 и при этом включено расширение APC (Alternative PHP Cache), возможно возникновение ошибки segfault
.
Для решения этой проблемы добавьте в файл .htaccess
следующую строку, чтобы отключить APC:
php_flag apc.cache_by_default Off
Исчерпаны обработчики Apache
Эта проблема актуальна только для тарифов Eterno и Premium, где используются выделенные обработчики PHP. Для этих тарифов действует ограничение:
- до 6 обработчиков для основной версии PHP,
- до 3 обработчиков для всех остальных версий.
Если скрипты выполняются слишком долго, все обработчики могут быть заняты. В результате nginx не сможет передать запрос Apache, что и приводит к ошибке 502. Если за 1000 секунд (значение max_execution_time
) ответа не поступит, возникнет ошибка.
Для временного решения можно завершить все процессы Apache командой:
killall -9 apache2
Если проблема повторяется — обратитесь к разработчику сайта. Возможны причины:
- зависающие скрипты сайта,
- медленные SQL-запросы,
- проблемы в логике работы CMS или плагина.
Технический сбой на сервере
Иногда ошибка 502 возникает из-за технических сбоев. Мы отслеживаем такие случаи и оперативно устраняем их.
Если проблема не исчезает в течение разумного времени — обратитесь в техническую поддержку. Мы проверим сервер и подскажем, что вызывало ошибку.