【发布时间】:2014-04-23 14:44:49
【问题描述】:
我正在使用 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"
/>
【问题讨论】:
-
你能粘贴 NodeBalancer 传递给 Tomcat 的 HTTP 头吗?您可以使用“sudo tcpdump -vvvs 0 -l -A -i
”来获取标题。
标签: tomcat load-balancing linode clientip