2018.06.01 错误:Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an in...

[原创]https://blog.csdn.net/qq_27114677/article/details/77848078

在使用Tomcat+Nginx时。Nginx使用https,Tomcat使用http。使用iframe之类框架,在重定向时会出现以上问题导致页面加载不出来。这是因为Tomcat不知道Nginx发来的是http还是https。

默认情况下,nginx得到的https的访问会以http的方式发给负载的tomcat。

如果让tomcat知道是https的,需要如下配置

1、配置 Nginx 的转发选项:
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;
2、配置Tomcat server.xml 的 Engine 模块下配置一个 Value:
<Valve className="org.apache.catalina.valves.RemoteIpValve"

remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto"

protocolHeaderHttpsValue="https"/>

配置双方的 X-Forwarded-Proto 就是为了正确地识别实际用户发出的协议是 http 还是 https。
X-Forwarded-For 是为了获得实际用户的 IP。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容