![](/img/trans.png)
[英]Application Fail over not working in apache 2.2 web server configured with BIG IP (f5) load balancer
[英]F5 load balancer with Apache web and Tomcat SSL Issue
我们有一个 Web 应用程序托管在 Tomcat 服务器(集群)上,两个 Apache Web 服务器位于前面,F5 负载均衡 5 位于 apache 前面。 SSL 在 F5 负载均衡器中配置。 现在,每当有人使用负载均衡器的安全 url 访问我们的应用程序时,我们的 Java Web 应用程序都不会将 request.isSecure 评估为 true。 是否需要进行任何设置才能启用此功能。
在我们的 apache web 服务器中,我们使用代理平衡器进行了以下配置
ServerName ip:80
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse / balancer://mycluster/
<Proxy balancer://mycluster>
BalancerMember ajp://ipapp1:8009 route=jvm1 loadfactor=1
BalancerMember ajp://ipapp2:8009 route=jvm2 loadfactor=1 status=+H
ProxySet lbmethod=byrequests
</Proxy>
我试图通过为 8080 添加scheme="https",secure="true" 和 proxyPort="443"来更改 tomcat 的 server.xml 中的连接器详细信息,但它不起作用。
我在这里缺少什么?
您需要检查您的应用程序以查看它是否受支持,但通常会转发标头以传达请求协议。 传统上这是 X-Forwarded-Proto 标头,但 X-... 命名法已被弃用。 Forwarded 标头现在在一个标头中支持 X-Forwarded-For、X-Forwarded-Proto 等。 但是,仍然广泛支持已弃用的方法,因此任何一种方法都应在等待应用程序支持的情况下工作。
X-Forwarded-Proto: https
或者
Forwarded: proto=https
新标准在RFC 7239中描述
也许我在这里有点晚了,但我遇到了同样的情况。 我加了
scheme="https", secure="true" 和 proxyPort="443"
在端口 8009 上,而不是像原始问题那样在端口 8080 上。 那是因为来自 Apache 的请求是通过端口 8009 上的 AJP 发出的。此外,Apache 必须从http.conf启用http-ssl.conf并且它必须在端口 443 上侦听。
我尝试了这个配置并且它起作用了,通过Apache前面的负载均衡器发送的请求正确报告了https中的tomcat webapp。
我希望这对有同样问题的人有所帮助,我花了几天时间才明白这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.