【问题标题】:apache and tomcat get remote ipapache和tomcat获取远程ip
【发布时间】:2013-07-11 09:58:45
【问题描述】:

我的 apache 中有这个设置,这工作正常,但是在我的应用程序中,当获取远程地址返回本地 IP(127.0.0.1)时,我该如何解决这个问题?

</Location>        
</VirtualHost><VirtualHost *:80>
ServerName yourapp.yourdomain.com
ServerAlias yourapp.*        
ProxyRequests Off
ProxyPreserveHost On     
<Proxy *>
Order deny,allow
Allow from all
</Proxy>     
ProxyPass /webapp http://localhost:8080/webapp
ProxyPassReverse /webapp http://localhost:8080/webapp    
<Location /webapp>
  Order allow,deny
  Allow from all
</Location>        
</VirtualHost>

【问题讨论】:

  • 您需要在请求中使用 X-Forwarded-For 标头。 Apache 应在代理期间添加此标头
  • 我在哪里使用这个?你有一个例子吗?谢谢你!
  • 谢谢@ColinMorelli 我找到了request.getHeader("X-Forwarded-For")
  • 如果你使用它要小心,你可能不会得到你搜索的 IP(如果有多个 X-Forwarded-For 标头)。最好使用 Arun P Johnny 答案

标签: java apache tomcat7


【解决方案1】:

您可以使用Remote_IP_Valve在请求中设置实际的IP地址。

在你的 tomcat/conf/server.xml 中添加阀门

<Valve className="org.apache.catalina.valves.RemoteIpValve"
   remoteIpHeader="x-forwarded-for"
/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2012-07-12
    • 2017-10-10
    • 1970-01-01
    • 2016-10-17
    • 2020-11-29
    • 2022-09-29
    相关资源
    最近更新 更多