/...too long and unclear explanation.../
换句话说,我搜索了仅使用(一个或多个)域名(然后是 www.my_domain.it 而不是 www.my_domain.it/appname)的网站的正确方式,所有这些都必须指向webapp 的相同实例(这样从您访问的任何域名,将始终显示相同的运行时数据)。
所以,是的,我已经在 tomcat/webapps 文件夹中部署了 WAR 文件,现在,正确编辑 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>
否则,正确的解决方案是什么? 感谢大家!
最佳答案
我假设您的应用程序实例之一位于 webapps
目录中,它会自动以其名称从该位置部署。使用 Context 元素,您可以从文件系统中的任何位置部署应用程序。
但是,最好不要使用此信息编辑 server.xml,而是在 conf/hostname 中创建单独的 context.xml 文件,或者只部署到主机的 webapps 目录。如果您想更改任何内容,您在 server.xml 中配置的任何内容都需要重新启动服务器。 server.xml 之外的配置可以在运行时获取,无需重新启动。
编辑:可能我之前回答的要点不清楚:
当您使用 Context 元素进行配置时:我建议不要使用 webapps 目录来部署您的 webapps。只需指向您实际部署 webapp 的目录。这将确保没有上下文将您的应用从 webapps/appname
部署为 /appname
,即使您的上下文定义指向 /
。
另一种方法是在 webapps 中部署名为 ROOT
的应用程序 - 这是将此 webapp 实际部署为 /
的快捷方式(注意:目录全部大写- 或文件名(ROOT.war),如果我没记错的话,甚至在 Windows 上也是如此)。但是恕我直言,如果您决定使用 Context 定义来确定路径(但部署在 appbase (webapps
) 之外),或者部署在 appbase(例如 webapps
)部署。
模拟 appbase 以指向 webapps 中的某个目录将确保您激怒任何期望 webapps
目录中的应用程序将部署到 Tomcat 的人。这是将大量时间花在调试幻影问题上的简单方法——不要那样做。
关于java - 主机、上下文和 webapp 双实例的 Tomcat 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53780966/