前言
经常会遇到这样的需求,比如需要实现在浏览器中输入公司的域名,跳转到公司官网。为了满足这样的需求,只需要在 tomcat 的 server.xml 配置文件中添加几行配置,就可满足这样的需求。
配置
<Host name="xxx.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context
path=""
docBase="/usr/local/tomcat9/webapps/Web_Home"/>
<Context
path="/jy"
docBase="/opt/asset_resources" reloadable="true"/>
</Host>
<Host name="www.xxx.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context
path=""
docBase="/usr/local/tomcat9/webapps/Web_Home"/>
<Context
path="/jy"
docBase="/opt/asset_resources" reloadable="true"/>
</Host>
这里配置了两个 Host 节点,所以不管是输 xxx.com 还是 www.xxx.com 都可以跳转到公司官网。/usr/local/tomcat9/webapps/ 下的 Web_Home 是公司官网在服务器上的发布包。
遇到的问题
Host 节点下可能会有多个 Context 节点,在上面的配置中就有两个,一个是指向公司官网的程序包,一个是指向配置的虚拟路径。当 path 都不指定时,虽然输域名可以跳转到公司官网,但虚拟路径下的图片都无法访问了。即两个 Context 节点下的 path 必须不同。所以修改虚拟路径的 path=”/jy”,然后通过 “https://xxx.com/jy/x.jpg” 就可以访问虚拟路径下的图片了,并且也可以实现输入域名跳转到公司官网的主页。