访问链路:https://域名/chatbi/》http://域名:30083/chatbi》实际springboot服务 springboot服务中使用HttpServletRequest request.getRequestURL() 获取的地址是http://域名/chatbi。既不是原来https的url也不是http携带30083的url
原因
访问springboot服务端的代理服务器中配置的是
bash
proxy_set_header Host $host;
此时springboot接收到的host 前端浏览器的域名。
这行配置注释掉后,springboot接收到的host就是转发的ip:port,此时getRequestURL就有了代理服务器实际转发的ip和地址。
解决
request.getRequestURL() 跟HOST请求头有直接关系,如果注释掉配置:proxy_set_header Host $host;,代理就会默认传参自己的host。