Рейтинг:0

Как заставить обратный прокси-сервер Nginx ждать, пока восходящий поток не подключится к сети?

флаг pe

У меня есть серверное приложение, которое прослушивает сокет UNIX, а Nginx выступает в качестве обратного прокси-сервера.

Теперь я хочу, чтобы Nginx ждал, пока мое приложение не появится в сети, когда, например.Я развертываю обновление и перезапускаю его, не возвращая клиентам никаких ошибок.

Это то, что у меня есть в моей конфигурации Nginx:

место расположения / {
# proxy_pass http://localhost:8080;
    proxy_pass http://unix:/tmp/MyApp.sock;
    proxy_set_header Хост $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;

    proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
}

Однако всякий раз, когда мое приложение не работает, Nginx возвращает 502 Неверный шлюз немедленно. По-видимому, ни один из прокси_*_тайм-аут помощь в настройках.

То же самое происходит с локальным сокетом TCP. С сокетами UNIX, когда я закрываю приложение, я удостоверяюсь, что файл сокета удален, чтобы Nginx мог видеть, что приложение не запущено.

Как я могу сказать ему, чтобы он фактически ждал определенный период времени, пока сокет не станет доступным?

Ivan Shatsky avatar
флаг gr
В качестве обходного пути вы можете попробовать поместить свое имя восходящего потока в переменную, как показано в [этом] (https://sandro-keil.de/blog/let-nginx-start-if-upstream-host-is-unavailable-or -вниз/) статья. Однако я не знаю, как это будет работать с сокетами, поэтому, если вы попробуете, оставьте отзыв.
djdomi avatar
флаг za
вы могли бы настроить nginx для обслуживания устаревшего контента?

Ответить или комментировать

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