Tomcat 8 中的虚拟主机
Virtual Host in Tomcat 8
我想将域 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>
提前致谢!
您定义了两个具有相同部署目录的主机webapps
如果您希望 localhost
不同于 mydomain
,请定义两个部署目录并将根上下文 war 重命名为 ROOT.war。不推荐使用<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
提供服务
如果localhost
和www.mydomain.com
相同,那么你只需要一个<Host
并部署一个ROOT.war
<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps">
</Host>
对我有用的是在 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>
别忘了更改您的应用程序
我想将域 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>
提前致谢!
您定义了两个具有相同部署目录的主机webapps
如果您希望 localhost
不同于 mydomain
,请定义两个部署目录并将根上下文 war 重命名为 ROOT.war。不推荐使用<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
如果localhost
和www.mydomain.com
相同,那么你只需要一个<Host
并部署一个ROOT.war
<Host name="localhost" autoDeploy="true" unpackWARs="true" appBase="webapps">
</Host>
对我有用的是在 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>
别忘了更改您的应用程序