A question about "proxy_redirect"

Igor Sysoev igor at sysoev.ru
Tue Jul 19 06:10:41 UTC 2011


On Tue, Jul 19, 2011 at 01:35:17AM -0400, speedfirst wrote:
> If the backend server uses FULL URL to initiate a redirect, like 
> 
>     sendRedirect("http://10.1.2.3:1234/redirect");
> 
> Can proxy_redirect match this URL and do the redirect?
> 
> I write this in config but it seems doesn't work:
> 
>    proxy_redirect http://10.1.2.3.4:1234/redirect
> http://$host:$server_port;
> 
> but nginx still return "Location: http://10.1.2.3.4:1234/redirect" to
> me.
> 
> My questions are:
> 1. Does proxy_redirect  only work in the case of relative URI
> redirection?
> 2. How should I do if I want to convert the backend server's host in the
> FULL URL redirection case?

nginx uses prefix for redirect. For example, if backend sends
Location: http://10.1.2.3:1234/redirect/to/somewhere
and nginx has directive
proxy_redirect http://10.1.2.3.4:1234/redirect   /r;
So nginx will rewrite it as
Location: http://nginx.server.name/r/to/somewhere;


-- 
Igor Sysoev



More information about the nginx mailing list