proxy_redirect and variables

Maxim Dounin mdounin at mdounin.ru
Mon Mar 29 20:55:53 MSD 2010


Hello!

On Mon, Mar 29, 2010 at 05:30:19PM +0200, Tobia Conforto wrote:

> Does anybody know anything about this?

Yes.

> > Does anybody know why proxy_redirect won't interpolate variables in its first argument?

Because it doesn't.  If you think you are brave enough to change 
it - submit patches.

> > I'm trying to setup a reverse proxy to a backend that uses 
> > name-based virtual hosts, so I need to change both the 
> > incoming Host header and the outgoing Location headers:
> > 
> > server {
> >    server_name public.hostname.com;
> > 
> >    set $proxy_to private.hostname.com
> > 
> >    location / {
> >        proxy_pass http://backend;
> >        proxy_redirect http://$proxy_to/ http://$host/;
> >        proxy_set_header Host $proxy_to;
> >    }
> > }
> > 
> > This doesn't work, unless I expand $proxy_to in proxy_redirect 
> > by hand.
> > 
> > Am I supposed to write it in another way?

For the above config you shouldn't use variables at all, use 
literal strings instead (and/or some config generator if you want 
to save typing).  Variables are evaluated at run time and should 
be used only when they have to be different for different 
requests.

Maxim Dounin



More information about the nginx mailing list