使用Nginx代理https到Tomcat,后端request.getRequestURL()获取不到https开头的链接
·
在网站改为https后,后台tomcat实际访问的地址为http,在某些场景下会有问题。
解决方法如下:
1.nginx的location块中增加配置
内容如下:
proxy_set_header X-Forwarded-Proto $scheme;

2. 修改Tomcat server.xml配置
在Tomcat server.xml 的 Engine 模块下配置一个 Valve:
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>

然后重启Tomcat即可。
或者将Connector改为如下(新增scheme="https" proxyPort="443"):
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" scheme="https" proxyPort="443"/>

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)