我对 tomcat 非常陌生,但我需要配置我公司的 tomcat 服务器,以便我们只能允许受限的 IP 地址。
我知道这通常是防火墙的工作,但在这种情况下这不是一个选择。
我们正在对生产服务器进行部署,在此过程中,我们需要能够显示由 Apache 运行的维护页面,该页面与 tomcat 位于同一服务器中。
在这种情况下,我需要做什么才能仅允许选定的 IP 地址访问整个 tomcat 服务器?
答案1
看看 Tomcat 的远程地址过滤器:
远程地址过滤器允许您将提交此请求的客户端的 IP 地址与一个或多个正则表达式进行比较,并允许请求继续或拒绝处理来自此客户端的请求。
编辑:要编辑哪个文件取决于您希望将过滤器应用于单个 Web 应用程序还是应用于所有 Web 应用程序。来自上面链接的同一页面:
Tomcat 提供了许多过滤器,可以使用 $CATALINA_BASE/conf/web.xml 配置这些过滤器以供所有 Web 应用程序使用,也可以通过在应用程序的 WEB-INF/web.xml 中配置这些过滤器以供单个 Web 应用程序使用。
编辑2:以下是 3 个 IPv4 地址的示例:
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>x\.x\.x\.x|y\.y\.y\.y|z\.z\.z\.z</param-value>
</init-param>
</filter>