一键部署tomcat单机多实例

  1. 首先我说一下为什么为什么要实现tomcat的单机多实例,在实际操作中,如果一台服务器只运行一台tomcat的服务,资源得不到最大的利用,所以单机多实例的创建,服务器的资源利用率提升了。

  2. 执行下面的脚本,可以结合ansible ,提前将jdk环境和tomcat压缩包分发过去,因为jdk的文件较大,可以提前下载好,还有一个原因就是要去外国网站下载,效率不高,提前下载好,就可以了。

#!/bin/bash
#解压压缩包 先判断是否存在
install_tomcat() {
	ls -la /opt/tomcat1/ | grep -w 'apache-tomcat-8.5.35'
	if [ $? -eq 0 ]; then
		echo "已存在"
	else
		tar -zxf apache-tomcat-8.5.35.tar.gz -C /opt/tomcat1/
	fi
}
#修改配置文件
tomcat2_update() {
	sed -i '22c <Server port="8006" shutdown="SHUTDOWN">' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
	sed -i '69c <Connector port="8081" protocol="HTTP/1.1"' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
	sed -i '116c <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
}
tomcat3_update() {
	sed -i '22c <Server port="8007" shutdown="SHUTDOWN">' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
	sed -i '69c <Connector port="8082" protocol="HTTP/1.1"' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
	sed -i '116c <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
}
#安装java环境
rpm -ivh jdk-8u131-linux-x64_.rpm
#先判断安装包是否存在
ls -la /root/ | grep -w 'apache-tomcat-8.5.35.tar.gz'
if [ $? -eq 0 ]; then
        echo "压缩包已存在"
        
else
        echo "压缩包不存在 请确保ansible已分发tomcat的压缩包"
        break
fi

#解压缩包 首先创建一个可以存放解压出来的目录
ls -la /opt/ | grep -w 'tomcat1'
if [ $? -eq 0 ]; then
	echo "此文件夹已存在"
	#开始判断解压出来的文件是否存在
	install_tomcat
else
	mkdir /opt/tomcat1
	install_tomcat
fi
#单机多实例
ls -la /opt | grep -w 'tomcat2'
if [ $? -eq 0 ]; then
        echo "文件已存在"
        tomcat2_update
else
        cd /opt/ && cp -rf tomcat1 tomcat2
        tomcat2_update
fi
ls -la /opt | grep -w 'tomcat3'
if [ $? -eq 0 ]; then
        echo "文件已存在"
        tomcat3_update

else
        cd /opt/ && cp -rf tomcat1 tomcat3
        echo "已创建"
        tomcat3_update
fi
yum -y install supervisor
cat >> /etc/supervisord.d/tomcat.ini<<eof
[program:tomcat2]
command=/opt/tomcat2/apache-tomcat-8.5.35/bin/catalina.sh run
[program:tomcat3]
command=/opt/tomcat3/apache-tomcat-8.5.35/bin/catalina.sh run
[program:tomcat1]
command=/opt/tomcat1/apache-tomcat-8.5.35/bin/catalina.sh run
eof
systemctl start supervisord
#判断是否可以访问页面
IP=`/sbin/ifconfig -a | awk '{print $2}'| sed -n '2p'`  #首先获取IP地址
curl_code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://${IP}:8080`
if [ $curl_code -eq 200 ];then
	echo "可以正常访问"
else
	echo "页面不可以正常访问"
fi

这里我们用到了一个软件supervisor,supervisor是一个守护进程工具,可以方便监听、启动、停止、重启一个多多个进程,用supervisor管理的进程,当其中一个进程被意外杀死,supervisor监听到进程死后,会自动将他重新拉起,很方便做的进程自动回复功能,不再需要自己写shell脚本来控制。

如图所示,我们实现单机多实例后的监听到的端口状态
在这里插入图片描述

发布了17 篇原创文章 · 获赞 0 · 访问量 201

猜你喜欢

转载自blog.csdn.net/weixin_46164213/article/details/103914772