Proxy error handling

Igor Sysoev is at rambler-co.ru
Thu Feb 28 16:36:13 MSK 2008


On Thu, Feb 28, 2008 at 04:22:08PM +0300, Igor Shergin wrote:

> Пытаюсь сделать на 0.5.35 виртуальный хост с такой логикой:
> - если бекенд вернул полезное содержимое, проксировать его;
> - если бекенд вернул 404-ю ошибку, выдавать вместо неё локальное содержимое
> в зависимости от URL.
> 
> Результат - "подвисание" клиентского запроса в случае 404 ошибки.
> Подскажите, пожалуйста, балбесу, что не так?
> 
> server {
> 
>         listen 80;
>         server_name proxytest;
>         access_log "/var/log/nginx/proxytest_log";
>         error_log "/var/log/nginx/proxytest_error";
> 
>         location / {
>             proxy_intercept_errors on;
>             proxy_pass http://backend;
>             error_page 404 = @nopic;
>         }
> 
>         location @nopic {
>            root /home/proxytest;
>            rewrite ^/test3(.*)$     /3.jpg;
>            rewrite ^/test2(.*)$     /2.jpg;
>            rewrite ^/test1(.*)$     /1.jpg;
>            return 200;

-            rewrite ^/test3(.*)$     /3.jpg;
-            rewrite ^/test2(.*)$     /2.jpg;
-            rewrite ^/test1(.*)$     /1.jpg;
-            return 200;

+            rewrite ^/test3(.*)$     /3.jpg  break;
+            rewrite ^/test2(.*)$     /2.jpg  break;
+            rewrite ^                /1.jpg  break;

>         }
> 
> }


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





More information about the nginx-ru mailing list