Redirect Nginx反向代理重定向问题
我已经为此挣扎了一段时间了。我的反向代理安装基本上如下所示: 全局\u nginx:=>docker\u nginx:=>docker\u应用程序: 反向代理工作正常,但我的应用程序发送重定向时遇到问题。本质上,应用程序本身只是一个Spring MVC应用程序,它重定向如下:Redirect Nginx反向代理重定向问题,redirect,nginx,proxy,reverse-proxy,http-proxy,Redirect,Nginx,Proxy,Reverse Proxy,Http Proxy,我已经为此挣扎了一段时间了。我的反向代理安装基本上如下所示: 全局\u nginx:=>docker\u nginx:=>docker\u应用程序: 反向代理工作正常,但我的应用程序发送重定向时遇到问题。本质上,应用程序本身只是一个Spring MVC应用程序,它重定向如下: @Controller public class Ctrl { @RequestMapping(value = { "/" }) public String redir() { return
@Controller
public class Ctrl {
@RequestMapping(value = { "/" })
public String redir() {
return "redirect:home";
}
}
结果是,当我浏览时,我被重定向到:但应该被重定向到
这是全局_nginx配置:
location /client1 {
proxy_pass http://localhost:8877/.;
proxy_redirect http://localhost:8877/ /;
port_in_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://app:8080/;
proxy_redirect http://app:8080/ /;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
这是我的docker_nginx配置:
location /client1 {
proxy_pass http://localhost:8877/.;
proxy_redirect http://localhost:8877/ /;
port_in_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://app:8080/;
proxy_redirect http://app:8080/ /;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
您需要在
proxy\u redirect
指令中添加/client1
前缀
也许:
proxy_redirect http://$host:8877/ /client1/;
如果需要匹配多个条件,则可以有多个
proxy\u redirect
指令。有关详细信息,请参阅。谢谢,我错过了/client1/
。但在我添加这个之后,它仍然失败。最后,我在服务器上通过netcat查看代理传递请求的主机部分。Global_nginx没有像我假设的那样将http请求主机部分从192.168.115.200=>localhost
更改。这让我想到了将全局nginx代理重定向更改为最终有效的方法:proxy\u redirect http://$host:8877//client1/代码>