proxy_redirect not working with "refresh"

John aqqa11 at earthlink.net
Thu Apr 30 06:43:14 UTC 2015


http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect says:

"(proxy_redirect) Sets the text that should be changed in the “Location” and “Refresh” header fields of a proxied server response."

All examples I found online only mentioned how it works with "Location", and that also works perfectly with me.

But it just doesn't work with "Refresh" for me.  My backend site http://192.168.1.9/test.html is:

<html><head> 
<meta http-equiv="refresh" content="0;url=http://192.168.1.9/" />
</head></html>

The nginx on my proxy 1.2.3.4 reads:

location / {
   proxy_pass http://192.168.1.9;
   proxy_set_header Host $host;
   proxy_redirect default;
   proxy_redirect http://192.168.1.9/  /;
   proxy_redirect http://$proxy_host/ /;
   proxy_redirect ~.* /;
   proxy_redirect / /;
}

You can see I have exhausted all options on that nginx documentation.  But after restarting nginx, "curl 1.2.3.4/test.html" still sees that "Refresh" line not translated to http://1.2.3.4/, and visiting http://1.2.3.4/test.html on browser will still redirect me to http://192.168.1.9/, which is unreachable.

Did I miss anything?  Actually I don't understand that line about "proxy_set_header Host $host", I just copied from web.

Thank you!



More information about the nginx mailing list