【问题标题】:Tomcat configuration - multiple hostsTomcat 配置 - 多台主机
【发布时间】:2012-07-10 07:26:50
【问题描述】:

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

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

这是来自 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>

【问题讨论】:

    标签: java tomcat war restriction hosts


    【解决方案1】:

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

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

    第二部分:

    • 只需更改为:

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

    【讨论】:

    • 谢谢。如果我进行了您在第二部分中提到的更改,当有人访问 website2.com 时,如何将流量引导到正确的主机?上述内容不会仅限制对 localhost 的访问吗?我希望能够从 website2.com 和 localhost 访问 url
    • @Tariq 我认为您不能同时拥有本地主机和独立主机。无论如何,当您仅限制您的服务访问的内部 IP 地址时,将其设置为 website2.com 之类的域名主机背后的意义何在??
    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 2013-01-30
    • 2014-06-15
    • 2017-05-13
    • 1970-01-01
    • 2012-08-02
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多