问题描述
应用服务器x.x.x.94:9999
nginx服务器内网地址x.x.x.74:80
nginx监听80端口转发到x.x.x.94:9999
nginx服务器有外网地址x.x.x.21:8080映射
项目部署后通过94|74服务器访问应用及静态文件均正常
通过外网x.x.x.21:8080访问jsp正常,但是jsp内需加载的静态文件均为x.x.x.21:80导致无法加载
问题出现的环境背景及自己尝试过哪些方法
nginx.conf
nginx添加了$server_port配置
proxy_pass x.x.x.94:9999;
proxy_set_header Host $host:$server_port;
相关代码
java代码
webapp配置basePath
之前在jsp里面获取basePath的方式无法过绿盟服务器扫描,会有漏洞
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
后来就配置application.properties两种ip端口写死测试
①basePath=http\://x.x.x.74/xxxxx/
②basePath=http\://x.x.x.21:8080/xxxxx/
94|74均正常访问,21:8080问题依旧