Multiple Upstream Servers Result in Error 310 (net::ERR_TOO_MANY_REDIRECTS)

Cliff Wells cliff at
Tue Mar 6 21:46:55 UTC 2012

On 03/06/2012 01:08 PM, mevans336 wrote:
> I have an Nginx reverse-proxy sitting in front of two JBoss servers. If
> I attempt to add the second JBoss server to the upstream directive, I
> receive an Error 310 (net::ERR_TOO_MANY_REDIRECTS) from Chrome, IE just
> displays an "Internet Explorer cannot display this webpage" error. If I
> comment the second upstream server out a kill -HUP the master process,
> everything works properly.
> I am attempting to use Nginx to rewrite all HTTP requests to HTTPS and
> upon first contact with our domain, the JBoss application redirects you
> to
> server {
>          listen;
>          server_name;
>          location / {
>                  proxy_set_header Host $host;
>                  proxy_set_header  X-Real-IP  $remote_addr;
>                  proxy_next_upstream error timeout invalid_header;
>                  rewrite ^ https://$server_name$request_uri? permanent;
>                  proxy_pass http://jboss_dev_servers;
>          }
> }

Why does the application do a redirect if you are already doing one in 
your Nginx config?  It's not clear why you even bother with the 
proxy_pass in this location.  Just redirect to the HTTPS location and be 

Also, be sure the application is properly detecting the scheme.   In 
your config, Nginx is talking to JBoss via HTTP, not HTTPS, so you may 
have some issue there, something like proxy_set_header X-Scheme $scheme; 
would do the trick.

I have no idea why this would work with a single backend and not two, 
unless you are somehow inadvertently running two different versions of 
the JBoss code (one with a redirect, one without).


More information about the nginx mailing list