Java 带有CDN的Tomcat RemoteIpValve配置

Java 带有CDN的Tomcat RemoteIpValve配置,java,iis,cdn,tomcat8,x-forwarded-for,Java,Iis,Cdn,Tomcat8,X Forwarded For,我在iis8后面配置了tomcat8。我还启用了CDN服务 主机已将RemoteIpValve启用为 <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by" protocolHeader="x-forwarded-proto"/&g

我在iis8后面配置了tomcat8。我还启用了CDN服务

主机已将RemoteIpValve启用为

<Valve className="org.apache.catalina.valves.RemoteIpValve"         
        remoteIpHeader="x-forwarded-for" 
        proxiesHeader="x-forwarded-by" 
        protocolHeader="x-forwarded-proto"/>
访问日志配置

<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 &quot;%r&quot; %s %b"/>
现在,tomcat没有选择实际的客户端IP 121.243.37.18,而是选择CDN服务器IP。我无法将CDN服务器IP添加为代理,因为将有许多CDN边缘服务器。如何配置tomcat以获得正确的远程IP地址CDN是否提供“X-Real-IP”头? x-forwarded-for可以是通过多个代理的IP。

CDN是否提供“x-Real-IP”头?
x-forwarded-for可以是通过多个代理的IP。

x-forwarded提供了逗号分隔的IP,包括实际的客户端IP和CDN IP。但出于某种原因,tomcat RemoteIPValve使用的是最后一个值(CDN IP),而不是实际的客户端IP。因此,我要求我提供的CDN添加客户头真正的客户ip,并传递实际的远程客户ip,这是有效的。x-forwarded提供了逗号分隔的ip,包括实际的客户ip和CDN ip。但出于某种原因,tomcat RemoteIPValve使用的是最后一个值(CDN IP),而不是实际的客户端IP。因此,我要求我提供的CDN添加客户头真正的客户机ip,并传递实际的远程客户机ip,这样做有效。
<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 &quot;%r&quot; %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