Tomcat 8 中的虚拟主机

Posted

技术标签:

【中文标题】Tomcat 8 中的虚拟主机【英文标题】:Virtual Host in Tomcat 8 【发布时间】:2017-05-13 13:32:09 【问题描述】:

我想将域mydomain.com 映射到应用程序。我在server.xml 中添加了一个<Host> 条目,但是当我转到www.mydomain.com 时,它显示的是Tomcat 起始页而不是我的应用程序。

server.xml:

<Engine name="Catalina" defaultHost="localhost">

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

  <Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps">
    <Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log" directory="logs"/>
  </Host>


  <Host name="mydomain.com" autoDeploy="true" unpackWARs="true" appBase="webapps">
    <Alias>www.mydomain.com</Alias>
    <Context privileged="true" debug="0" docBase="/opt/tomcat/webapps/MyDomain" path=""/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log." directory="logs" resolveHosts="false"/>
  </Host>

</Engine>

提前致谢!

【问题讨论】:

【参考方案1】:

您已经定义了两个具有相同部署目录的主机webapps

如果您希望localhostmydomain 不同,请定义两个部署目录并将根上下文war 重命名为ROOT.war。不建议使用&lt;Context标签

<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps">
<Host name="www.mydomain.com" autoDeploy="true" unpackWARs="true" appBase="mydomain">
</Host>

您不需要alias,因为主机名包含域名。来自不同于www.mydomain.com 的DNS 条目的所有其他请求将由localhost 提供服务

如果localhostwww.mydomain.com 相同,那么您只需要一个&lt;Host 并部署一个ROOT.war

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

【讨论】:

【参考方案2】:

对我有用的是将我的应用程序像这样映射到 server.xml 文件中。

删除您添加的主机条目,并在您从一开始就拥有的主机条目中输入:

<Context path="/" docBase="yourApp">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/ROOT" docBase="ROOT">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

不要忘记更改您的应用程序

【讨论】:

以上是关于Tomcat 8 中的虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 8 - 虚拟主机不重新编译 JSP 或识别更新的类

Tomcat-8.5.23 基于域名和端口的虚拟主机

特定虚拟主机的 Tomcat 8 管理器用户

tomcat 8.0虚拟机配置文档

Centos7 tomcat安装和tomcat虚拟主机

Linux虚拟机下安装Tomcat