Proxy Retry Logic

Sirsiwal, Umesh usirsiwal at verivue.com
Thu Dec 23 05:25:34 MSK 2010


That's the second configuration I tried:
        location @sub1 {
           proxy_pass http://www.1google.com;
        }
        location @sub2 {
           proxy_pass http://www.google.com;
        }
        location @s {
           proxy_pass http://www.yahoo.com;
        }

         location / {
           try_files @sub1 @sub2 @s;
        }


I got the following log:

> 2010/12/22 20:48:52 [debug] 1637#0: *3 try to use file: "@sub1" "/Users/umesh/nginx/install/html at sub1"
> 2010/12/22 20:48:52 [debug] 1637#0: *3 try to use file: "@sub2" "/Users/umesh/nginx/install/html at sub2"

At least according to this e-mail http://forum.nginx.org/read.php?2,28297 chain, it seems I cannot use named locations in try_files directory except as the last location.


-Umesh

________________________________________
From: Eugaia [ngx.eugaia at gmail.com]
Sent: Wednesday, December 22, 2010 9:08 PM
To: nginx-devel at nginx.org
Subject: Re: Proxy Retry Logic

Hi,

On 23/12/2010 03:51, Sirsiwal, Umesh wrote:
> Thanks Marcus.
> I really like echo module. My module's subrequest handling is modeled after the excellent echo module. We have significant custom logic to deal with our specific needs.
>
> I did not realize try_files can use with proxy locations. I did see the internal redirect in the configuration example used proxy. But, I did not realize that I could use it in other places.
>
> I tried using
>          location /sub1 {
>             proxy_pass http://www.1google.com;
>          }
>          resolver 216.195.0.131;
>          location /sub2 {
>             proxy_pass http://www.google.com;
>          }
>          location @s {
>             proxy_pass http://www.yahoo.com;
>          }
>
>
>           location / {
>             try_files /sub1/$uri /sub2/$uri @s;
>          }
>
> I always get www.yahoo.com. Looking at the logs:
> 2010/12/22 20:44:55 [debug] 1607#0: *1 try to use file: "/sub1//" "/Users/umesh/nginx/install/html/sub1//"
> 2010/12/22 20:44:55 [debug] 1607#0: *1 http script copy: "/sub2/"
> 2010/12/22 20:44:55 [debug] 1607#0: *1 http script var: "/"
> 2010/12/22 20:44:55 [debug] 1607#0: *1 try to use file: "/sub2//" "/Users/umesh/nginx/install/html/sub2//"
> This was followed by testing @s which served the content.
>
> I tried replacing /sub1 and /sub2 with named location and I get:
> 2010/12/22 20:48:52 [debug] 1637#0: *3 try to use file: "@sub1" "/Users/umesh/nginx/install/html at sub1"
> 2010/12/22 20:48:52 [debug] 1637#0: *3 try to use file: "@sub2" "/Users/umesh/nginx/install/html at sub2"
> This was followed by testing @s which served the content.
You'll need to change the names of the locations from /sub1 to @sub1 as
well as the references in try_files.  Note : you can't put slashes after
the @sub[n] part (unless you put them in the named location as well),
but you can obvioiusly create the URL that you proxy to in in the
proxy_pass directive inside the named location.

The /sub1 and /sub2 I was referring to was for echo_location, which can
be a named or normal location.

Cheers,

Marcus.

_______________________________________________
nginx-devel mailing list
nginx-devel at nginx.org
http://nginx.org/mailman/listinfo/nginx-devel



More information about the nginx-devel mailing list