首页 > 解决方案 > Apache Tomcat 服务器子域

问题描述

我在远程服务器上运行 apache tomcat,我有一个带有子域的域。我想为每个子域分配一个单独的项目。我无法在除 localhost 之外的其他域上运行 apache。域绑定到远程服务器 IP 地址,因此所有子域都指 webapps 文件夹中的所有项目,而不是一个特定的。

  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>
  
  <Host name="https://web-dev.example.com/"  appBase="web-dev.example.com"
        unpackWARs="true" autoDeploy="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 

  </Host>
  
  
</Engine>

标签: javatomcat

解决方案


您的name主机属性应包含虚拟主机的 DNS 名称:

通常是该虚拟主机的网络名称,在您的域名服务服务器中注册。无论用于指定主机名的大小写如何,Tomcat 都会在内部将其转换为小写。

(参见Tomcat 文档)。

因此,您应该使用:

  <Host name="web-dev.example.com"
        appBase="web-dev.example.com">
  ...
  </Host>

(我省略了具有默认值的属性)。


推荐阅读