Приветствую Вас.
Задача стоит показывать error_page вслучае возникновения внештатной ситуации. Разрабов попросил присылать мне 500-ю ошибку при таких ситуациях, что бы у меня отрабатывал конфиг:
error_page 500 502 503 504 403 /50x/er.html;
location /50x {
root /var/www/;
allow all;
}
проверяю так: ставлю deny all; ----> вижу er.html ---- хорошо
Но когда сайт мне присылает 500 по проверочному url, я вижу строку «Could not process request», хотя ожидаю увидеть er.html
Проверочный url такой: http://site.com/test.xhtml
F12 в браузере вижу:
name \ status \ type \ initiator
test.xhtml \ 500 \ document \ other
Вроде я получил code 500. Почему же не отрабатывает его nginx? Что я не так написал?
Заранее спасибо за потраченное на этот вопрос время.
РЕШЕНИЕ :
И вы правы! (vel)
По вашей ссылке раскрутил вопрос: https://stackoverflow.com/questions/8715064/nginx-not-serving-my-error-page/8...
Узнал что error_page обрабатывает ошибки, только сгенерированные nginx. По умолчанию nginx возвращает все, что возвращает прокси-сервер, независимо от кода состояния http.
Итог: Добавил proxy_intercept_errors on; в основной location. Теперь nginx хватает ошибки возвращаемые как свои и показывает мне мой error_page.
(делал это что бы при падении БД за которую цепляется сайт, была не ошибка 500, а красивая заглушка подставленная в error_page)
Большое спасибо за ваше время и верное направление!