平台: centos 6.9
安装版本:tomcat 9.0 Binary Distributions
安装目的:安装三个tomcat,对外 web端口分别为8080、8081、8082
原理: 多个tomcat实例公用一个JDK,通过安装目录、端口以及配置文件实现独立实例,每个tomcat猫 都有自己独立的运行环境、配置文件 和站点目录。
按照系统的部署流程记录如下:
yum search java,这里我们选取java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment。
yum install java-1.8.0-openjdk.x86_64 -y
下载地址https://tomcat.apache.org/,这里我们选取tomcat版本后对应下载,以Binary Distributions 9.0做测试。
wget http://mirrors.shuosc.org/apache/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz -P /usr/local/src
cd /usr/local/src
tar zxvf apache-tomcat-9.0.1.tar.gz
mv apache-tomcat-9.0.1 tomcat_8080
#说明:这里不建议直接mv到/usr/local目录中,因为这个是原始的tomcat,以后创建多实例可以直接从这里拷贝并优化。
#配置单实例tomcat8080
mkdir /usr/local/tomcat_8080
cp -rfpu /usr/local/src/tomcat_8080/* /usr/local/tomcat_8080/
启动tomcat8080:
/usr/local/tomcat_8080/bin/startup.sh
查看效果:
[root@mysqlemn local]# netstat -tunlp | grep 8080
tcp 0 0 :::8080 :::* LISTEN 13240/java
如果防火墙开启,需要加一个规则进去以便web访问:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
web访问测试:
刚才创建了一个8080,下边我们再创建两个tomcat,端口分别为8081、8082。 如果熟练了,可以直接跳过8080,直接创建需要的实例个数。
创建多个tomcat目录:
mkdir -p /usr/local/tomcat_808{1..2}
cp -rfpu /usr/locat/src/tomcat_8080/* /usr/local/tomcat_8081/
cp -rfpu /usr/locat/src/tomcat_8080/* /usr/local/tomcat_8082/
分别修改tomcat的 conf目录下的server.xml,修改三个端口设置(Server、Connector、AJP,至于https根据 是否用到修改),防止和之前的tomcat_8080冲突。修改以后分别启动测试:
/usr/local/tomcat_8081/bin/startup.sh
/usr/local/tomcat_8082/bin/startup.sh
iptables 添加端口并save,web单独访问,单机多实例猫已经实现。剩下的就是根据业务需要、服务器配置进行tomcat的配置优化了,比如包括服务设置、站点发布目录以及 jvm优化等等。
说明:
(1),站点发布目录修改:
重启tomcat生效。
(2),这里建议将站点目录的catalina.sh设置成tomcatX放于/etc/init.d/tomcatPort ,里边设置下java路径以及环境启动目录比如:
[root@21yunwei ROOT]# cp /usr/local/tomcat_8080/bin/catalina.sh /etc/init.d/tomcat8080 -p
[root@21yunwei ROOT]# cp /usr/local/tomcat_8081/bin/catalina.sh /etc/init.d/tomcat8081 -p
[root@21yunwei ROOT]# cp /usr/local/tomcat_8082/bin/catalina.sh /etc/init.d/tomcat8082 -p
针对每个服务设置自己的启动目录:这里以/etc/init.d/tomcat8080 为例进行修改,第二行加入:
CATALINA_HOME=/usr/local/tomcat_8080 #tomcat容器的启动目录
其他容器的服务也是一样,这样以后就可以通过/etc/init.d/tomcatPort start 启动或者stop了,同时这个可以设置到/etc/rc.local脚本中方便开机启动,目前我们线上就是这样实现。
/etc/init.d/tomcat8080 start
/etc/init.d/tomcat8081 start
/etc/init.d/tomcat8082 start
(3),清理tomcat缓存。解决访问有异常,清理下tomcat服务器端的缓存方法:
find /usr/local/ -name "work*" | xargs rm -rf
说明:这里只是针对tomcat安装测试,未进行任何优化。