Proxy Retry Logic

Eugaia ngx.eugaia at gmail.com
Thu Dec 23 05:08:46 MSK 2010


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.



More information about the nginx-devel mailing list