2
我一直在爲此奮鬥了一段時間。我的反向代理基本安裝是這樣的:Nginx反向代理重定向問題
global_nginx:http://192.168.115.200/client1/ => docker_nginx:http://localhost:8877/ => docker_app:http://app:8080/
反向代理服務器工作正常,但我有麻煩時,我的應用程序發送重定向。本質上,應用程序本身就是一個Spring MVC應用程序,它重定向如下:
@Controller
public class Ctrl {
@RequestMapping(value = { "/" })
public String redir() {
return "redirect:home";
}
}
的結果是,當我瀏覽http://192.168.115.200/client1/我重定向到:http://192.168.115.200/home/但應該被重定向到http://192.168.115.200/client1/home/
這是global_nginx CONF:
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;
}
這是我docker_nginx的conf:
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;
}
謝謝我錯過了'/ client1 /'。但是在我添加這個之後,它仍然保持失敗。我結束了在服務器上的網絡連接以查看代理傳遞請求的主機部分。根據我的假設,Global_nginx沒有將http請求主機部分從'192.168.115.200 => localhost'更改。這給了我一個想法,將global_nginx代理重定向改爲這樣,最終工作: 'proxy_redirect http:// $ host:8877 // client1 /;' – Vampnik