问题背景:
在常规情况下,如果我们部署2个用到Tomcat中,只能将一个应用命名为ROOT,在做了域名-IP的映射之后,我们可以通过类似http://www.jangle.xyz的方式访问该应用。
但如果我们添加一个新的应用:如hello应用, 常规的,我们将通过http://www.jangle.xyz/hello 的方式访问这个应用服务器。
由于域名映射不能带目录, 即:即时做了 hello.jangle.xyz 也不能映射至 123.12.32.45/hello 来实现对应关系。
解决方案:
如果希望实现 hello.jangle.xyz 映射至 123.12.32.45 并定位到 hello应用 ,并且
www.jangle.xyz 也映射至123.12.32.45 并定位到ROOT应用。 那么Tomcat提供Host的配置方式,实现这样的需求。
参考:Tomcat的总体架构概览2(v8.5)(用server.xml的视角解读)
我们在server.xml中,找到Engine节点下的Host节点, 编写一个Host的兄弟节点(即Engine的子节点),如下:
<Host name="hello.jangle.xyz" >
<Context docBase="D:/jangle/hello" path="/"></Context>
</Host>
docBase 是应用的绝对路径, path="/" 表示顶级路径。 这样,我们就可以使用地址http://hello.jangle.xyz 访问到 123.12.32.45的hello项目, 并且 http://www.jangle.xyz 所访问的ROOT项目不受影响。
在<Host>中添加<Alias>,设置别名,即实现多个域名对应一个主机。
<Host ...>
<Alias>blog.jangle.xyz</Alias>
</Host>
本文详细介绍如何在Tomcat中配置多个域名,分别指向不同的应用。通过修改server.xml文件,利用Host节点设置不同域名对应的上下文路径,实现独立域名访问特定应用的目标。同时,文章还介绍了如何设置别名,使得多个域名可以指向同一个主机。
233

被折叠的 条评论
为什么被折叠?



