我们在Tomcat服务器(集群)上托管了一个Web应用程序,其中两个Apache Web服务器位于前面,而F5负载balance5位于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等。但是,对于已弃用的方法仍然有广泛的支持,因此任何一种方法都应该适用于app支持。
X-Forwarded-Proto: https
要么
Forwarded: proto=https
新标准在RFC 7239中有描述