One Tomcat, Mutil-Instance
根据对Tomcat的分析,一个JSP/Servlet容器是指一个Engine元素,一个服务器是指一个Service元素,Tomcat是通过组件构建起来的,一个Service元素对应一个服务器实例,这些实例有一个引用在最顶层元素Server中。
基于Tomcat的虚拟主机是通过在一个Engine元素中放置多个Host元素实现的。每一个Host元素可以有不同的域名,所有的Host(虚拟主机)共享同一个Connector元素。
基于上面的理论,我们只需要在配置文件($TOMCAT_HOME/conf/service.xml)在另外配置多个Service节点即可。如下所示:
应该注意该节点的name属性的取值不能重复。
在Service节点之下,会有Conector子节点,这里我们需要关注protocol=”HTTP/1.1”和protocol=”AJP/1.3”两个子节点。如下所示:
我们在这里应该要注意端口一定不能重复,否则会遭遇端口已经启用的错误。
接下来,应该关注Engine节点,如下所示:
这里同样应该保证Engine的属性name的取值不能相同,同时,我们在Host节点中,应该指明应用所在的目录,在这里我是将应用放在了$TOMCAT_HOME下的webapp_cas的文件夹下。
需要指出来的是,在Context一行中,我特意将名字为cas的Web App设置为该Tomcat实例下的默认应用,这样,我们就无需再在URL的端口后面再加上cas这样的字眼。
在撰写本文时,共参考了如下的网络资源,感谢原文作者: