how proxy_next_upstream control retry times

李文伟 wenwei.li at dianping.com
Thu Feb 7 03:07:34 UTC 2013


thank you very much.
with *recursive_error_pages* on
it works.

2013/2/6 Maxim Dounin <mdounin at mdounin.ru>

> Hello!
>
> On Wed, Feb 06, 2013 at 11:23:24AM +0800, 李文伟 wrote:
>
> > hi:
> > now i am looking for a 50x retry method, config like this:
> >
> >
> >
> >    upstream jboss8080 {
> >     server                        10.1.2.164:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >     server                        10.1.2.174:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >     server                        10.1.2.209:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >     server                        10.1.7.136:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >     server                        10.1.7.137:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >     server                        10.1.7.138:8080 weight=1 max_fails=1
> > fail_timeout=2s;
> >   }
> >
> >   server {
> > ........
> >     location / {
> > proxy_next_upstream http_500 http_502 http_503 http_504 timeout error
> > invalid_header;
> > .......
> >       if ( !-f $request_filename ) {
> > proxy_pass                http://jboss8080;
> > break;
> >       }
> >     }
> >
> >     error_page                    500 502 503 504  /50x.html;
> >       location = /50x.html {
> >       root                        html;
> >     }
> >   }
> >
> >
> > then how proxy_next_upstream control retry times.
>
> Quote from http://nginx.org/r/upstream:
>
> : If an error occurs when communicating with the server, a request
> : will be passed to the next server, and so on until all of the
> : functioning servers will be tried. If a successful response could
> : not be obtained from any of the servers, the client will be
> : returned the result of contacting the last server.
>
> That is, errors are handled as they appear, and there is no
> retry-specific controls except proxy_next_upstream itself.  In a
> worst case all servers will be tried.
>
> > by the way, i used error_page, config like this:
> >
> >
> > upstream backend  {
> >   server localhost:8080 weight=5;
> > }
> >
> > upstream backup1  {
> >   server localhost:8081 weight=5;
> > }
> >
> > upstream backup2  {
> >   server localhost:8082 weight=5;
> > }
> >
> >     server {
> > listen       80;
> > server_name  localhost;
> > proxy_intercept_errors on;
> >
> > location / {
> >     error_page  502 @backup1;
> >     proxy_pass  http://backend;
> > }
> >
> > location @backup1 {
> >     error_page  502 @backup2;
> >     proxy_pass http://backup1;
> > }
> >
> > location @backup2 {
> >     proxy_pass http://backup2;
> > }
> >      }
> >
> > @backup1works, but @backup2 doesn't.
> > how can i let backup2 works.
>
> http://nginx.org/r/recursive_error_pages
>
> --
> Maxim Dounin
> http://nginx.com/support.html
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx




-- 
――――
Regards,
李文伟
software engineer
大众点评网-技术部-团购开发组
Tel:(021)53559777-1700
Mobile:15921585268
QQ:363603327
MSN:muzi666boy at hotmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130207/77949da6/attachment-0001.html>


More information about the nginx mailing list