error_page & proxy_pass

Igor Sysoev is at rambler-co.ru
Thu Jul 3 23:56:11 MSD 2008


On Thu, Jul 03, 2008 at 08:33:10PM +0300, Andrew Sitnikov wrote:

>   location /foo {
>        return 502;
>   }
>   
>   error_page  502 =200  /errors/502.html;
>   
>   location /errors {
>        proxy_pass http://backend:80;
>   }  
> 
>   запрашиваем http://host/foo
>   
>   и на backend уходит запрос /foo а не /errors/502.html, если в /errors прописать root
>   и файлы отдавать локально то все работает как надо (отдаются файл 502.html).

Это фича. Нужно добавить URI-part в proxy_pass:

-   location /errors {
-        proxy_pass http://backend:80;
+   location /errors/ {
+        proxy_pass http://backend:80/;
    }  

>   Второй вопрос:
>   
>   error_page  502 =200  /errors/502.html;
>   
>   location /errors {
>            root /foo/bar/baz;
>            expires -1;
>   }
>   
>   если для error_page не указывать =200 то заголовки который должен создавать expires не выдаются.
> 
>   P.S. версия nginx - 0.6.31

expires выдаётся только для 200, 204, 301, 302 и 304.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list