Internal redirects to upstream

Maxim Dounin mdounin at
Thu May 7 01:50:19 MSD 2009


On Thu, May 07, 2009 at 01:19:28AM +0530, Arvind Jayaprakash wrote:

> On May 06, Maxim Dounin wrote:
> >Hello!
> >
> >On Wed, May 06, 2009 at 11:54:50PM +0530, Arvind Jayaprakash wrote:
> >
> >> Is it possible to do an internal redirect to another url within nginx?
> >> 
> >> Say I access url "/u1" which is handled by an upstream server. I need to
> >> be able to return a redirect to url "/u2" which is not a file but needs
> >> to be sent back to the upstream server (possibly different from the
> >> first one).
> >> 
> >> X-Accel-Redirect seems to be for cases when /u2 maps to a file.
> >
> >No, X-Accel-Redirect just accepts uri and does internal redirect.  
> >It has no knowledge of how /u2 will be handled - by static module, 
> >proxy module, fastcgi or whatever.
> Excellent.
> Can any response headers sent by /u1 be transferred as request headers
> when making the request to /u2 ?

Any upstream response headers are available as $upstream_http_*.  
But they will be cleared as soon as upstream module in /u2 will 
start working, so you have to save them somewhere at rewrite 
phase, e.g.:

    location /u2 {
        set $v $upstream_http_x_my_header;
        proxy_set_header X-My-Header $v;
        proxy_pass ...

Maxim Dounin

More information about the nginx mailing list