Re: Обработать http статус с backend'а
Олег Петрачёв
cronfy at gmail.com
Wed Jun 17 21:36:58 MSD 2009
День добрый,
>> статусах. Например, при 503 показать специальную страничку nginx'ом, а
>> при всех остальных спроксировать, что отдал backend.
> Как раз proxy_intercept_errors и нужно.
перенаправлять их на обработку nginx'у с помощью директивы error_page.
Ага, спасибо, осознал. Но теперь хочется странного: чтобы эти страницы
ошибок были видны только при внутренних редиректах. Знаю, что есть
internal, но он при попытке обратиться к location отдаёт 404. А нужно
другое: если запрос к странице ошибок вызван внутренним редиректом
(например, через error_page), то отдавать её, а если не внутренним, то
проксировать к backend'у.
Если сделать
location / {
proxy_intercept_errors on;
error_page 503 /503.html;
proxy_pass http://127.0.0.1;
}
location /503.html {
root /var/www/errors;
}
то при обращении снаружи к /503.html увидим нашу страницу ошибок, а
запрос к бэкэнду спроксирован не будет.
Хотелось бы как-нибудь так:
location /503.html {
if (!$internal) {
proxy_pass http://127.0.0.1;
}
}
Это как-нибудь возможно реализовать? В переменных в документации не
вижу, за что там можно было бы зацепиться...
--
// cronfy
More information about the nginx-ru
mailing list