【发布时间】:2010-08-01 09:49:27
【问题描述】:
有谁知道 Tomcat 是否可以通过 IP 地址限制对某些应用程序的访问(如 Apache 的 .htaccess)?
【问题讨论】:
有谁知道 Tomcat 是否可以通过 IP 地址限制对某些应用程序的访问(如 Apache 的 .htaccess)?
【问题讨论】:
您将Valve 添加到context.xml 中的Context(特别是org.apache.catalina.valves.RemoteAddrValve)。请参阅Remote Host Filters 上的文档。
【讨论】:
这是一个例子:
在\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>
【讨论】:
在 Tomcat 7 中,您可以在 web.xml 中配置它。
如果是针对所有web应用,可以在tomcat7/conf/web.xml配置,如果只是针对一个web应用,可以在tomcat7/webapps/$(WEB_APP)/WEB-INF/web.xml配置,非常方便。
配置使用RemoteAddrFilter过滤器,Container Provided Filters中有一个例子。
【讨论】:
要为特定 IP 地址设置对 Web 应用程序的访问限制,请将以下字符串添加到 /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>
这里是 instruction how to do this 通过 Jelastic 面板。请务必重新启动 Tomcat 以使更改生效。
【讨论】:
deny 替换为allow 以仅允许某些IP 而不是仅阻止某些IP。
在Tomcat 9中,可以在path:apache-tomcat-9.0.14\webapps\manager\META-INF\context.xml进行配置
【讨论】: