一、 语法
1.1 nginx redirect
当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段。
- 将被代理服务器发出的重定向http协议的location改为https协议
proxy_redirect ~^http://([^:]+)(:\d+)?(.*)$ https://$1$2$3;
- 在代替的字段中可以不写服务器名
假设被代理服务器返回Location字段为: http://localhost:8000/two/some/uri/
这个指令: proxy_redirect http://localhost:8000/two/ http://frontend/one/;
将Location字段重写为http://frontend/one/some/uri/。
在代替的字段中可以不写服务器名:
proxy_redirect http://localhost:8000/two/ /;
这样就使用服务器的基本名称和端口,即使它来自非80端口。
如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
- 在指令中可以使用一些变量
proxy_redirect http://localhost:8000/ http://$host:$server_port/;