我在Tomcat 7(7.0.68)上部署了一个应用程序(JVM 1.8.0_31-b13,Spring MVC 4.2.4,Security 4.0.3),我正在使用AWS ELB来处理来自客户端的请求。 在我的应用程序中,我尝试使用X-forwarded-for标头获取客户端IP地址。如果我没有找到它,那么我使用HttpServletRequest类的方法getRemoteAddr。 当我在应用程序中记录信息时,我注意到了几件事:
第一: 标头x-forwarded-for始终为空
第二: 远程地址有时与elb ip相同,有时它与客户端IP地址相同。 我注意到了:
这是server.xml中的阀门配置:
<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto" internalProxies="172\.(1[6-9]|2\d|3[0-1])\.\d{1,3}\.\d{1,3}|10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}" />
以下是elb地址ip的示例:172.31.xxx.xxx
我不明白:
感谢您的帮助