/ ...解释时间太长且不清楚... /
以另一种方式,我搜索仅用(一个或多个)域名(然后是www.my_domain.it而不是www.my_domain.it/appname)访问网站的正确方法,所有这些都必须指向Web应用程序的相同实例(这样,从您访问的任何域名中,将始终显示相同的运行时数据)。
是的,是的,我已经将WAR文件部署在tomcat / webapps文件夹中,现在,正确编辑conf / server.xml以获取上述结果,是否与以下之一相对应?
1。
<Host name="my_domain.eu" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>www.my_domain.eu</Alias>
<Alias>www.my_domain.it</Alias>
<Alias>www.my_domain_2.it</Alias>
<Context path="" docBase="appname" debug="0" privileged="true" />
...
</Host>
2。
<Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
<Alias>www.my_domain.eu</Alias>
<Alias>www.my_domain.it</Alias>
<Alias>www.my_domain_2.it</Alias>
<Context path="" docBase="appname" debug="0" privileged="true" />
...
</Host>
3。
<Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
<Alias>www.my_domain.eu</Alias>
<Alias>www.my_domain.it</Alias>
<Alias>www.my_domain_2.it</Alias>
<Context path="/appname" docBase="appname" debug="0" privileged="true" />
...
</Host>
4。
<Host name="my_domain.eu" appBase="webapps/appname" unpackWARs="true" autoDeploy="true">
<Alias>www.my_domain.eu</Alias>
<Alias>www.my_domain.it</Alias>
<Alias>www.my_domain_2.it</Alias>
<!-- without context definition -->
...
</Host>
否则,正确的解决方案是什么? 谢谢大家!
答案 0 :(得分:1)
我假设您在webapps
目录中拥有应用程序的实例之一,该应用程序从该实例中自动以其名称进行部署。借助Context元素,您可以从文件系统中的任何位置部署应用程序。
但是,最佳做法是不使用此信息来编辑server.xml,而是在conf / hostname中创建单个context.xml文件,或者仅将其部署到主机的webapps目录中。如果要更改任何内容,则在server.xml中配置的任何内容都需要重新启动服务器。可以在运行时获取server.xml外部的配置,而无需重新启动。
编辑:我先前的答案可能不清楚:
使用Context元素进行配置时:我建议不要使用webapps目录来部署您的webapp。只需指向您实际部署Web应用程序的目录即可。这将确保即使上下文定义指向webapps/appname
,也不会确保上下文从/appname
部署为/
的应用。
另一种方法是在Web应用程序中部署名称为ROOT
的应用程序-这是将Web应用程序实际部署为/
的快捷方式(注意:目录名或文件名的全部大写( ROOT.war),即使我在Windows上也没记错)。但是恕我直言,如果您决定使用上下文定义来确定路径(但部署在 appbase (webapps
之外),还是部署在 appbase 中(例如webapps
)部署。
嘲笑appbase指向webapps中的某个目录将确保您激怒任何希望将webapps
目录中的应用程序部署到Tomcat的人。这是浪费大量时间调试幻影问题的简便方法,请不要这样做。