转载地址:https://blog.csdn.net/weixin_30248399/article/details/97370807添加链接描述
使用nginx前端代理https网址url转到tomcat后端,发现jsp页面中的request.getScheme()获取到的值为http,解决方案为
在nginx的https配置中添加配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
配置Tomcat server.xml 的 Engine 模块下配置一个 Valve:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>
在tomcat的配置中并未找到配置项,需要添加一个配置项到配置文件中,具体位置为:
<Engine.... >
<Host ...>
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>
<Host/>
<Engine/>