Сценарий
nginx отвечает 502 Bad Gateway
nginx отвечает, а /api/ отдаёт 502. И nginx, и бэкенд запущены. Найди, что между ними, и верни ответ.
Бэкенд заказов переехал на новую машину. nginx стоит впереди и передаёт ему запросы к /api/. После переезда мониторинг красный: на /api/ приходит 502. Тот, кто переносил сервис, сказал только, что «всё запущено», и ушёл в отпуск. Машина твоя.
Симптом
Сам nginx жив и отвечает. Бэкенд, если верить его init-скрипту, тоже. А ответа нет.
$ curl -s -o /dev/null -w '%{http_code}\n' http://localhost/api/
502
$ curl -s http://localhost/api/
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
$ sudo service orders-api status
orders-api is running (pid 25)Страницу с 502 рисует сам nginx: значит, запрос до него дошёл, а дальше что-то не сложилось. Init-скрипт бэкенда говорит «running», и это правда, но правда только про процесс: он жив. Доступен ли он, статус не знает.
Что надо получить
Четыре условия. По http://localhost/api/ через nginx приходит код 200 и строка orders-api ok. Бэкенд по-прежнему слушает unix-сокет /run/orders/api.sock и отвечает через него: пересадить его на TCP-порт или остановить - не починка. Конфигурация сайта /etc/nginx/sites-enabled/orders не изменена, остаётся единственным включённым сайтом, и второго блока server в к
Дальше бесплатно, нужен только аккаунт
Урок открывается после входа. Создай бесплатный аккаунт, чтобы дочитать его и запустить лабораторию.
Уже есть аккаунт? Войти