gpt4 book ai didi

java - 主机、上下文和 webapp 双实例的 Tomcat 问题

转载 作者:行者123 更新时间:2023-11-28 22:47:28 30 4
gpt4 key购买 nike

/...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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com