Tomcat 是用于实现 Java 应用程序的最强大的网络服务器之一。作为管理员,您可能需要限制对您的网络服务器的访问,实际上您有很多选项可以实现此要求。但是,允许或拒绝访问 Tomcat 的最简单方法之一是通过 Tomcat阀门组件的远程地址过滤器。您可以通过将以下组件添加到server.xml文件来实现它:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" Attribute" />
根据Apache Tomcat 文档,远程地址具有以下属性:
- allow
- deny
- denyStatus
- addConnectorPort
- invalidAuthenticationWhenDeny
允许某些 IP 地址:
例如,如果要允许 IP xxxx、yyyy和zzz*的子网,则需要添加以下内容:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="x.x.x.x,y.y.y.y,z.z.z.*" />
上面的配置强制 Tomcat 只允许具有这些特定 IP 地址的客户端。
允许 localhost 通过默认端口访问,而其他地址可通过 1234 访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
addConnectorPort="true"
allow="127\.\d+\.\d+\.\d+;\d*|::1;\d*|0:0:0:0:0:0:0:1;\d*|.*;1234"/>
通过上述配置,localhost (127.0.0.1)能够通过默认连接器端口访问 tomcat,而所有其他用户都通过端口 1234 访问 tomcat。
在此示例中,addConnectorPort配置为 true ,这意味着 tomcat 将允许的 IP 地址与IP:PORT进行比较,其中 IP 是客户端 IP,PORT 是Tomcat 连接器端口。
笔记:
- 如果您使用 DHCP,此配置可能不适合您,因为您的 IP 地址可能会通过 DHCP 更改。
- 如果您的应用程序与其他应用程序集成,您需要确保这些应用程序的 IP 地址在 Tomcat 中列出。否则,他们无法沟通。
- 您可以添加正则表达式,而不是单独添加 IP 地址