Tomcat多个WebServer配置:
1、说明
试想下,实际项目中,我们只有一台服务器,并且在上面只部署一个Web Server服务(这里是Tomcat),我们将多个Web项目同时部署在这个Web Server中,此时,这些项目运行一切正常。而当我们调整了某个项目时,需要重新打包发布,需要重启Tomcat服务时,问题出现了:因为多个项目部署在同一个Tomcat中,重启时这些Web项目都会停止服务,等待Tomcat重启成功,恢复正常状态。此刻正在使用其中某个项目产品时,就不能访问和操作了,这是不允许的。
所以,我们需要建立多个Tomcat服务,把各个Web项目分别部署在一个Tomcat中,做到互不影响,这样就可以解决上面的问题了。
PS:
上面的办法可以解决各个项目彼此影响的问题,但是建议在项目开发阶段,为了节省相关成本时所采用的方案;实际在大数据量情况下,推荐将各个项目或服务,分别部署到独立的服务器中。
2、步骤
建立多个Tomcat服务原理比较简单,不做单独介绍,具体查看下面的实现步骤接口。针对不同的Tomcat版本改动大同小异,这里我们以Tomcat8.0为例说明如何构建多个服务:
A、环境变量配置
首先,我们以两个Tomcat服务为例,分别将Tomcat(免安装版本)放入不同的位置,我的是默认的8080位置:/tomcat下,而8090的位置:/tomcat/8090,那么,这里我们需要配置两个CATALINA_HOME环境变量,它们的名字分别为CATALINA_HOME和CATALINA_HOME2,内容分别为:/tomcat和/tomcat/8090,配置完成之后,记得source /etc/profile使其生效,具体的环境变量配置,这里不赘述,请查看相关资料或留言。
内容如下:
CATALINA_HOME=/tomcat
CATALINA_HOME2=/tomcat/8090
B、连接/关闭配置
我们定位到对应的Tomcat位置,修改它的server.xml配置,具体如下:
8080端口Tomcat:
关闭端口:
<Server port="8005"shutdown="SHUTDOWN">
连接端口:
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
8090端口Tomcat:
关闭端口:
<Server port="8006"shutdown="SHUTDOWN">
连接端口:
<Connector port="8090"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
PS:
多个Tomcat的关闭和连接端口必须是不同的,其它配置可以相同。
C、CATALINA_HOME
接下来,我们需要修改对应Tomcat下bin中的catalina.sh(windows下为.bat),将所有的CATALINA_HOME都修改为CATALINA_HOME2,默认的8080对应的Tomcat的catalina.sh保持默认即可。
3、验证
定位到对应的Tomcat位置,执行bin/startup.sh启动两个Tomcat服务,然后访问下面的地址,它们通过不同端口号区分。
A、8080端口
地址:
http://localhost:8080
结果:
B、8090端口
地址:
http://localhost:8090
结果: