[原创]Linux CentOS环境下单机安装tomcat多实例
之前的文章《Centos 6.5 linux系统如何安装 tomcat 7.0》简单记录了下tomcat的安装,只不过这个是单 实例。而实际的生产环境上,多会安装多个tomcat,这里简单记录下。
平台: centos 6.9
安装版本:tomcat 9.0 Binary Distributions
安装目的:安装三个tomcat,对外 web端口分别为8080、8081、8082
原理: 多个tomcat实例公用一个JDK,通过安装目录、端口以及配置文件实现独立实例,每个tomcat猫 都有自己独立的运行环境、配置文件 和站点目录。
按照系统的部署流程记录如下:
1,安装JDK。
yum search java,这里我们选取java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment。
yum install java-1.8.0-openjdk.x86_64 -y
2,下载安装tomcat。
下载地址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
查看效果:
[[email protected] local]# netstat -tunlp | grep 8080 tcp 0 0 :::8080 :::* LISTEN 13240/java
如果防火墙开启,需要加一个规则进去以便web访问:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
web访问测试:
3,多实例安装
刚才创建了一个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路径以及环境启动目录比如:
[[email protected] ROOT]# cp /usr/local/tomcat_8080/bin/catalina.sh /etc/init.d/tomcat8080 -p [[email protected] ROOT]# cp /usr/local/tomcat_8081/bin/catalina.sh /etc/init.d/tomcat8081 -p [[email protected] 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安装测试,未进行任何优化。实际线上的tomcat运行环境原则上是以非root用户 运行以保证安全,另外包括各种tomcat的安全配置优化、性能优化、JVM优化以及应用配置优化,后续本博客将详细记录完整的tomcat线上安装以及各种优化。