我有几个Tomcat服务器,在NetScaler负载均衡器后面,它负责SSL卸载。 我已经将以下行添加到所有的server.xml中:
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" protocolHeader="x-forwarded-proto" />
这在除了2(相同)服务器之外的所有工作。 我试图让它在这两个工作。
我嗅探了stream量,它包含x-forwarded-proto头,值为https ,因为它应该是。 request.getHeader("x-forwarded-proto")的返回结果是https 。 但是, request.getScheme()返回http , request.isSecure()返回false 。
我怎样才能得到remoteIpValve工作?
谢谢。
负载均衡器的远程IP是什么?
连接设备(本例中为负载均衡器)的IP地址必须位于internalProxiesconfiguration中,否则不会应用到远程地址,scheme,端口和请求安全性的转换。
默认情况下,允许本地主机和大部分RFC1918范围(172.16 / 12除外)。 如果连接到tomcat服务器的代理IP不在这些范围之一,则需要configurationinternalProxies设置以允许您的负载均衡器。