java - Tomcat 配置 - 多台主机

标签 java tomcat war restriction hosts

我有三个 Web 服务(WAR 文件_ 来自托管在 Tomcat 中的第三方供应商。每个 Web 服务都有不同的 URL(例如 website1.com、website2.com、website3.com),来自研究和 POC我所做的工作,这可以通过使用虚拟主机来实现。

两个问题: 1. 我想限制对其中两个网络服务的访问,以便它们只能通过内部 ip 地址访问。如何才能做到这一点? 2. 每个 web 服务都有一个状态检查方法,可以运行它来检查服务是否正常工作(它轮询数据库并运行 web 服务上的一些方法)。当它检查 Web 服务上的方法时,它使用 localhost 来调用它。但是,我的 Tomcat 配置设置为使用主机名,因此失败了。如何在将每个 Web 服务绑定(bind)到主机名的同时解决这个问题?

这是来自 Tomcat server.xml 文件的主机配置:

  <Host name="website1.com"  appBase="adminapps" unpackWARs="true" autoDeploy="true">
  </Host>

  <Host name="website2.com"  appBase="packagingapps" unpackWARs="true" autoDeploy="true">
  </Host>

  <Host name="website3.com"  appBase="fulfillmentapps" unpackWARs="true" autoDeploy="true">
  </Host>

最佳答案

对于第一部分,执行以下操作之一:

  • 设置防火墙规则以限制对 IP 白名单的访问 地址。
  • 一个简单的 HTTP 模块就可以工作。只是硬编码(或从配置) 允许的 IP/主机并拒绝所有其他。

第二部分:

  • 只需更改为:

    <Host name="http://localhost:8080/yourWebName appBase="packagingapps" unpackWARs="true" autoDeploy="true"><br/> </Host>

关于java - Tomcat 配置 - 多台主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11408499/

相关文章:

java - 即使 jar 在 WEB-INF/lib 中,也找不到包

deployment - 将大型 *.war 部署到 tomcat 的最佳方法

java - 通过工厂方法实例化 Bean 失败;异常 org.springframework.beans.BeanInstantiationException

java - 在Java中调用 super 构造函数的方法,对吗?

java - Tomcat 5.5 Servlet/JSP/JSTL 依赖项

MySQL 数据库与 MySQL 服务器位于不同的服务器中

eclipse - 将 jar 添加到 Tomcat 类路径

gradle - 修改子项目中的gradle任务

java - 我想使用两个不同表的 id 作为第三个表的 id(hibernate、java、spring)

java - IE 将 JAX-RS Web 服务的字符串响应视为文件