Как я могу заставить Nginx возвращать HTTP 503, когда мой прокси-сервер приложений не работает?

У меня есть веб-сервер nginx, расположенный перед сервером приложений Jetty Java, на котором выполняется веб-приложение.

Я хотел бы настроить nginx для возврата HTTP 503, если прокси-сервер Jetty не работает.

Таким образом, когда я отключаю сервер приложений для обслуживания, если происходит сбой, 503 возвращается всем клиентам, сообщая им, что сайт временно недоступен.

Однако в базовой конфигурации Nginx возвращает неверный шлюз HTTP 502, когда он не может подключиться к местоположению proxy_pass.

Можно ли настроить nginx для сообщения о 503 вместо этого?

2 ответа

Решение

Вы можете сделать это, установив страницу ошибки.

error_page 502 =503 /maintenance.html

С только содержанием ответа Мартина Фьордвальда я все еще получал 502, у меня не было реальной страницы maintenance.html, но это, кажется, работает:

    location / {
        error_page 502 =503 /maintenance.html;
        include proxy_params;
        proxy_pass http://unix:/var/run/my.sock;
    }
    location /maintenance.html {
        return 503;
    }
Другие вопросы по тегам