atom feed4 messages in ru.sysoev.nginxRe: Internal redirects to upstream
FromSent OnAttachments
Arvind JayaprakashMay 6, 2009 11:24 am 
Maxim DouninMay 6, 2009 11:50 am 
Arvind JayaprakashMay 6, 2009 12:49 pm 
Maxim DouninMay 6, 2009 2:49 pm 
Subject:Re: Internal redirects to upstream
From:Maxim Dounin (mdou@mdounin.ru)
Date:May 6, 2009 2:49:56 pm
List:ru.sysoev.nginx

Hello!

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 ... }