【发布时间】:2011-04-12 02:33:21
【问题描述】:
主题说明了一切。我想要的是将每个子域映射到一个 webapp,例如:
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。我的 webapp 的 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 webapp,而 URL 中没有尾随 /bbstats?
【问题讨论】:
-
嗨 Karsten,您的 Tomcat 是否使用上述配置开始清理? catalina 日志中是否有任何错误?
-
清除我所看到的。 catalina.*.log 中没有错误,只有警告“14.09.2010 17:25:53 org.apache.catalina.startup.HostConfig deployDescriptor WARNUNG: A docBase C:\dev\tomcat\webapps\bbstats inside host appBase has已指定,并将被忽略”,这可能与 context.xml 指定相同的 appBase 和 docBase 值有关。
标签: tomcat web-applications subdomain tomcat6