我正在使用Linode NodeBalancers来加载我的2个tomcat服务器的平衡器(用于提供https请求),我们的业务要求之一是能够捕获ClientIP以进行指纹识别+其他目的。
但是,我似乎无法让NodeBalancers通过x-forwarded-for传递客户端IP,Linode支持也不知道如何在Tomcat配置上这样做?
我的Tomcat配置(server.xml)的部分内容
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="myKeyStore"
keystorePass="myKeyStorePassword"
compression="on"
compressableMimeType="text/html,text/xml,text/css,text/javascript"
compressionMinSize="1024"
maxPostSize="5097152"
clientAuth="false" sslProtocol="TLS" />
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
protocolHeader="x-forwarded-proto"
protocolHeaderHttpsValue="https"
/>
答案 0 :(得分:1)
看起来你的标题配置很好,但需要注意三件事:
阀门文件相当不错,但最近这三件事让我感到惊讶(文档http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html)。