如何使用Tomcat限制IP地址访问?

时间:2010-08-01 09:49:28

标签: apache tomcat webserver

有没有人知道Tomcat是否可以通过IP地址限制对某些应用程序的访问(如Apache的.htaccess)?

5 个答案:

答案 0 :(得分:26)

您向Valve中的Context添加了context.xml(具体而言,org.apache.catalina.valves.RemoteAddrValve)。请参阅Remote Host Filters上的文档。

答案 1 :(得分:23)

这是一个例子:

in \ apache-tomcat-7.0.33 \ conf \ server.xml:

<Engine name="Catalina" defaultHost="localhost">
    ...
    ...
    ...
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="10\.132\.77\.55|10\.132\.76\.120|10\.132\.77\.47"/>
    ...
</Engine>

答案 2 :(得分:4)

在Tomcat 7中,您可以在web.xml中对其进行配置。

如果它适用于所有网络应用,您可以在tomcat7/conf/web.xml中进行配置,如果仅适用于一个网络应用,则可以在tomcat7/webapps/$(WEB_APP)/WEB-INF/web.xml中进行配置,这非常方便。

配置使用RemoteAddrFilter过滤器,Container Provided Filters中有一个示例。

答案 3 :(得分:2)

要为您的网络应用程序设置特定IP地址的访问限制,请将以下字符串添加到 / opt / tomcat / webapps / {web-application name} / META-INF / context。 xml 文件:

<Context antiJARLocking="true" path="/">
 <Valve className="org.apache.catalina.valves.RemoteIpValve" />
 <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="{IP_address}" />
</Context>

这是通过Jelastic面板的instruction how to do this。请务必重新启动Tomcat以使更改生效。

答案 4 :(得分:0)

在Tomcat 9中,您可以在以下路径中进行配置:apache-tomcat-9.0.14\webapps\manager\META-INF\context.xml