参考资料:
一、Host配置
对一个Tomcat,可以配置多台虚拟主机。简单地说,就是让一台服务器可以对应多个主机名。这在Tomcat中称之为Host。要求每个Host的Name必须唯一。
配置方法:
编辑$CATALINA_HOME/conf/server.xml,添加如下内容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
appBase指定了该虚拟主机上应用的部署位置,一般填写相对于CATALINA_HOME的相对路径即可。当然,也可以填写其他地址,如<Context path="" docBase="E:/tomcatApp/JeasyCMS" debug="0" reloadable="true" />
二、Context配置
在一个Host上,可以部署多个应用。每个应用都有不同的Context Path,Context Path会出现在用户访问该应用的URL中。示例如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="zhx-web" path="" reloadable="true" ></Context> /* Root Context */
<Context docBase="ROOT" path="/admin" reloadable="true" ></Context> /* path 须为空 或 以/开头且不以/结束 */
</Host>
如果Tomcat绑定的端口为8080,则访问 http://localhost:8080 即可访问 项目zhx-web,访问 http://localhost:8080/admin 即可访问项目 ROOT 。
需要注意的是:
1、当未给Host配置Context时,Tomcat默认把ROOT项目作为Root Context,即此时访问 http://localhost:8080 就是访问ROOT项目
2、当给Host配置Context时,如果path="" 或 path="/",则相当于将此Context指定为Root Context,上面所举例子的第一个Context
3、即使指定了项目对应的Context,在URL中也可以通过完整路径访问到该项目。如对于上面所举的第一个Context,当访问 http://localhost:8080/zhx-web 时 仍能访问到zhx-web项目
4、当指定了一个自己的项目作为Root Context后,就无法直接通过http://localhost:8080/ROOT访问管理页面了,所以加上 <Context docBase="ROOT" path="/admin" reloadable="true" ></Context> http://localhost:8080/admin访问。
另外,webapps下的ROOT是tomcat的应用程序的根,如果应用程序部署在ROOT中,则可直接通过http://ip:port 访问到