Рубрики
nginx

Ошибка 502 и как с ней бороться

Поискав информацию в интернете, я выяснил, что ошибка 502 (502 Bad Gateway) это ошибка на стороне сервера и никак не связана с браузером пользователя, как пишут на многих ресурсах.

Ошибка возникает на серверах, на которых в качестве бэкенда установлен HTTP-сервер nginx. Дословно переводится как «плохой шлюз» и означает, что HTTP-сервер на фронтенде не смог обработать ответ от nginx.

Проблема обычно возникает из-за лимитов ресурсов сервера, например HTTP-сервер на фронтенде возвращает очень длинные заголовки, которые не помещаются в кеш nginx. Для того, чтобы решить эту проблему, необходимо увеличить число и размер буферов для одного соединения, в которые будет читаться ответ, а также размер буфера, в который будет читаться первая часть ответа, получаемого от проксируемого сервера:

proxy_buffer_size 16k;
proxy_buffers 16 16k;

Делается это в блоке server конфига для вашего доменного имени.

источник:

https://1devblog.ru/bitrixvm/error-502-and-how-to-fight-it/

502 Bad Gateway, это отсутствие ответа nginx от httpd(apache, читай php) за положенное время, может быть множество причин приводящих к сему — и проблемы сервера/хостинга(нехватка ресурсов, недостаточное выделение оных, список может быть длинным) и ошибки разработки сайтов, например одновременно срабатывает несколько агентов с запуском ресурсоемких задач, или есть страницы создающиеся по 10-30 сек, которые нашел робот и рассказал друзьям. В анализе могут помочь google, команда top или htop, просмотр логов httpd с уровнем логирования debug, просмотр состояния httpd в /server-status(нужно разрешить), отключение агентов, общение с разработчиками сайтов с применением сильных мотиваторов пр.

Если нет опыта/времени/желания разобраться, а денег нанять админа нет или нуу все равно нет, то можно купировать проблему(чревато):
— Как только висяк — в консоли service httpd restart, рестарт апача приведет к завершению работы всех его процессов и скорее всего прибьет проблемный.
— Попробовать уменьшить MaxRequestsPerChild на один нолик, текущее значение можно посмотреть в /etc/httpd/bx/conf/prefork.conf а новое задать в /etc/httpd/bx/custom/z_bx_custom.conf, это позволит завершать процессы апача и стартовать новые чаще, в итоге все процессы будут потреблять меньше памяти, но периоде время отклика сайтов увеличится.

источник:

https://dev.1c-bitrix.ru/support/forum/forum32/topic66190/

Upstream prematurely closed connection while reading response header from upstream

У меня установлено битрикс окружение. Частенько начала вылетать ошибка bitrix 502 bad gateway. Посмотрел логи nginx(/var/log/nginx/site_error.log). Там фигурирует одна и таже ошибка upstream prematurely closed connection while reading response header from upstream. Эта ошибка появляется тогда, когда страница генерируется больше времени, чем установленный timeout front-end’a. Обычно она возникает когда nginx отправляет запросы дальше на apache По умолчанию эти таймауты — 60 секунд. Поставим 180 (эти параметры прописываются в \etc\nginx\nginx.conf):

proxy_send_timeout 180s;
proxy_read_timeout 180s;
  • На Centos конфиг nginx хранится здесь \etc\nginx\nginx.conf
  • Логи nginx храниятся здесь /var/log/nginx/site_error.log

Мне помогло это избавиться от 502 ошибки в bitrix

ЗЫ: Буква ‘s’ — обязательна. Без неё ошибок не будет, но и значения не будут учитываться.

источник:

https://pashkof.pro/articles/502-bad-gateway/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *