Ошибка 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 возникает из-за технических сбоев. Мы отслеживаем такие случаи и оперативно устраняем их.

Если проблема не исчезает в течение разумного времени — обратитесь в техническую поддержку. Мы проверим сервер и подскажем, что вызывало ошибку.