一尘不染

如何将子域映射到Tomcat 6上的Web应用程序(包括根Web应用程序)?

tomcat

主题说明了一切。我想要的是将每个子域映射到一个Web应用程序,例如:

http://root.domain.com:8080 -> http://domain.com:8080/
http://manager.domain.com:8080 -> http://domain.com:8080/manager
http://abc.domain.com:8080 -> http://domain.com:8080/abc
http://def.domain.com:8080 -> http://domain.com:8080/def

在本地主机上,这将是

http://root.localhost:8080 -> http://localhost:8080/
http://manager.localhost:8080 -> http://localhost:8080/manager
http://abc.localhost:8080 -> http://localhost:8080/abc
http://def.localhost:8080 -> http://localhost:8080/def

理想情况下,我想使用端口80而不是8080,但这是另一回事了。我很乐意首先将其与端口8080配合使用,以便URL末尾的路径消失。

请注意,箭头不是重定向,而是如果我照原样离开Tomcat会输入的内容。

我知道Tomcat文档页面http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-
howto.html。我读了很多遍,但是没有取得太大的进步。我编辑了etc / hosts以添加127.0.0.1
bbstats.localhost。然后我加了

<Host name="bbstats.localhost" appBase="webapps/bbstats"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
</Host>

conf目录中的Tomcat的server.xml。我的Web应用程序的context.xml是:

<Context path="/bbstats" docBase="bbstats" debug="5" reloadable="true" crossContext="true"> 
</Context>

重新启动Tomcat。通过Ant重新部署。进入时

http://bbstats.localhost:8080 /

进入浏览器后,出现黑屏。

当使用appBase =“ webapps”代替appBase =“ webapps /
bbstats”时,我进入了Tomcat的根应用程序。后一种行为是预期的。但是,如何使bbstats.localhost:8080转到bbstats网络应用程序而在URL中没有尾随/
bbstats呢?


阅读 233

收藏
2020-06-16

共1个答案

一尘不染

您能否<Host>通过给出尝试将每个Web应用程序嵌套在server.xml中的根Web应用程序中path=""?我还没有亲自尝试过。

<Host name="bbstats.localhost" appBase="webapps">
    <Context path="" docBase="/bbstats/"/>
</Host>

<Host name="tomcatstuff.localhost" appBase="webapps">
    <Context path="" docBase="/tomcatstuff/"/>
</Host>
2020-06-16