Java Tomcat配置-多个主机

Java Tomcat配置-多个主机,java,tomcat,war,restriction,hosts,Java,Tomcat,War,Restriction,Hosts,我有三个web服务(来自第三方供应商的WAR文件,托管在Tomcat中。每个web服务都有一个不同的URL(例如website1.com、website2.com、website3.com),根据我所做的研究和POC工作,这可以通过使用虚拟主机来实现 <Host name="website1.com" appBase="adminapps" unpackWARs="true" autoDeploy="true"> </Host> <Host name

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

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

  <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>
以下是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>

  <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>

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

  <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="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>
  • 只需更改为:

      <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>
    

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

      <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="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>
    
    • 只需更改为:

        <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>
      

      谢谢。如果我做了您在第二部分中提到的更改,当有人访问website2.com时,流量将如何定向到正确的主机?上述内容是否仅限制对localhost的访问?我希望能够从website2.com点击url并localhost@Tariq我不认为你可以同时拥有本地和独立的主机同时。不管怎样,当你只限制服务访问的内部IP地址时,让它成为像website2.com这样的域主机背后的意义是什么?谢谢。如果我做了你在第二部分提到的更改,当有人访问website2.com时,流量将如何定向到正确的主机?上面的限制不是吗ct仅访问本地主机?我希望能够从website2.com点击url并localhost@Tariq我认为你不可能同时拥有本地主机和独立主机。不管怎样,当你只限制服务访问的内部IP地址时,让它成为像website2.com这样的域主机有什么意义??