我有三个 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/