我正在尝试在Tomcat 8.5.9上设置多个子域,但我无法在server.xml中获得正确的语法以使其正常工作。我确信这是我在我的结尾所遗漏的东西,但是我发现没有任何一篇文章在没有使用Apache的情况下给出完整的解释。我这里没有使用Apache或NGINX。我只想在同一个JVM上设置一个包含多个子域的DEV服务器。
test.foo.com
test1.foo.com
DNS设置正确,每个URL的nslookup提供相同的公共IP地址。
将应用程序部署到“webapps”的“test”和“test1”目录中。
设置test1.foo.com URL的方式有效,但是当我点击它时,test.foo.com网址会出现404错误。错误正在写入日志,因此它即将出现。
这些是来自server.xml的主机条目:
<Host name="test.foo.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="test" path=""/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="test1.foo.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="test1" path=""/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="author_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
如果有人能看到任何错误,我会非常感激。
答案 0 :(得分:0)
(在评论中解决)
在appBase
中为每个虚拟主机设置不同的目录。 general documentation不会限制,但特定documentation for virtual host表示您不能对两个虚拟主机使用相同的目录
请注意,appBase下每个主机的目录结构不应相互重叠。