nginx反向代理后jsp端口与其加载的静态文件端口不一致

新手上路,请多包涵

问题描述

   应用服务器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问题依旧
阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题