Как я могу заставить 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;
}