proxy_redirect http://A/ http://B/
在浏览器中重定向的request url还是A,并没有变成B
谢谢
proxy_redirect http://A/ http://B/
在浏览器中重定向的request url还是A,并没有变成B
谢谢
该指令用于修改被代理服务器返回的响应头中的Location消息头和Refresh消息头。与proxy_pass指令配合使用。比如Nginx 服务器通过proxy_pass指令将客户端的请求地址重写为被代理服务器的地址,那么 Nginx服务器返回给客户端的响应头中Location消息头显示的地址就应该和客户端发起请求的地址相对应,而不是代理服务器直按返回的地址信息,否则就会出向题。该指令解决了这个向 题,可以把代理服务器返回的地址信息更改为需要的地址信息。其语法结构为:
proxy_redirect redirect replacement;
proxy_redirect default;
proxy_redirect off;
server {
listen 80;
server_name www.mydomain.com;
location /proxy/ {
proxy_pass http://192.168.xx.xx:8080;
proxy_redirect http://192.168.xx.xx:8080/proxy/ http://www.mydomain.com/proxy/;
#或者使用/proxy/,这样就使用服务器的基本名称和端口,即使它来自非80端口
#proxy_redirect http://192.168.xx.xx:8080/proxy/ /proxy/;
}
}
Nginx 服务器会将Location消息头的信息更改为:
Location:http://www.mydomain.com/proxy/
#配置1
location /one/ {
proxy_pass http://www.mydomain.com:8080/two/;
proxy_redirect default;
}
#配置2
location /one/ {
proxy_pass http://www.mydomain.com:8080/two/;
proxy_redirect http://www.mydomain.com/two/ /one/;
}