任何人都可以指导我与X-转发-原型 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto部署到 Apache Tomcat 的 Java Web 应用程序中的标头。
应用程序设置的方式是,tomcat 与 Apache Web 服务器通信,Apache Web 服务器又与 Cisco 负载均衡器通信,最后均衡器将页面发布到客户端(tomcat -> apache2 -> 负载均衡器 -> 客户端)。
SSL 证书安装在负载均衡器中,并且正在处理 HTTPS 请求。我的要求是使应用程序的行为方式是使用X-转发-原型并将页面更改为 HTTP 或 HTTPS。
检查我的网页的头文件,我找不到X-转发-原型标头。我也无权访问负载均衡器配置,IT 建议我们使用X-转发-原型区分 HTTP 和 HTTPS 请求。
是否需要在 Tomcat 或 Apache 级别进行任何配置,以便返回X-转发-原型标题?或者配置应该在负载均衡器中处理?
我很确定您现在已经弄清楚了,但我仍然会添加答案。
您可以使用该类org.apache.catalina.valves.RemoteIpValve在引擎标签中conf/服务器.xml雄猫的。
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="192.168.1.XXX"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
/>
需要注意的是,非常重要的是设置内部代理价值。如果未设置此选项并且您使用的是非标准网络设置,则可能会导致一些问题,其中 tomcat 不会检查x-转发标头,默认为“http”。出于安全原因,我建议设置它,即使它适用于默认值。
Look here https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)