我在 IIS 8 后面配置了 Tomcat 8。我还启用了 CDN 服务。
主机已启用 RemoteIpValve
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
proxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"/>
日志显示为
org.apache.catalina.valves.RemoteIpValve.invoke Incoming request /api/service/dealer/getStates with originalRemoteAddr '127.0.0.1', originalRemoteHost='127.0.0.1', originalSecure='false', originalScheme='http' will be seen as newRemoteAddr='121.244.190.83', newRemoteHost='121.244.190.83', newScheme='http', newSecure='false'
访问日志配置
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="web.hyundai.co.in_access_log" suffix=".txt"
pattern="x-forwarded-for : %{x-forwarded-for}i %h %t "%r" %s %b"/>
并在访问日志中
x-forwarded-for : 121.243.37.18, 121.244.190.83 127.0.0.1 [01/Mar/2017:09:02:52 +0530] "GET /api/service/dealer/getStates HTTP/1.1" 200 436
现在,tomcat 没有选择实际的客户端 IP 121.243.37.18,而是选择了 CDN 服务器 IP。我不能添加 CDN 服务器 IP 作为代理,因为会有很多 CDN 边缘服务器。如何配置tomcat以获取正确的远程IP地址