centos7 tomcat单机多例模式搭建

jdk 安装
详情查看jdk安装
配置/etc/profile文件,

#vi /etc/profile

添加环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

重新加载profile文件

#source /etc/profile

配置tomcat 为单机多实例,以apache-tomcat-8.5.39为例
创建tomcat8文件夹 复制apache-tomcat-8.5.39到tomcat8下,创建tomcat-ins存放实例,(实例文件夹理论上随便放,为了更好的管理,建议和tomcat放在一致)
创建tomcat8 下创建apache-tomcat-8.5.39 和 tomcat-ins

tomcat8
apache-tomcat-8.5.39
tomcat-ins

tomcat-ins用来存放单例
tomcat-ins下创建webapps01,webapps02,webapps03,webapps04,webapps05,webapps06
6个单例

tomcat-ins
webapps01
webapps02
webapps03
webapps04
webapps05
webapps06

复制apache-tomcat-8.5.39里面conf,logs,temp,work到每个实例webapps0~下面

修改每个实例下conf里面server.xml
保证端口不重复,否则存在端口被占用,实例启动失败
1.修改监听关闭端口,保证不一致
此处端口为监听关闭端口
2.修改http监听端口,和重定向端口
此处端口未http监听端口,也就是服务发布端口
3.注解 接受其他服务转发过来的请求。
在这里插入图片描述
具体tomcat server.xml修改,属性详解参考tomcat server.xml讲解

appbase 路径地址不改变的话则表示多个实例访问同一个项目

修改完后每个实例直接不会因为端口互相干扰
下一步针对,每个实例设置启动文件
在每个实例下创建start.sh
内容如下

#!/bin/bash
#web1
. /etc/init.d/functions
export CATALINA_BASE="/app/tomcat8/tomcat-ins/webapp01"

export JAVA_OPTS='-Xms251m -Xmx512m'

case "$1" in
start)
         /app/tomcat8/apache-tomcat-8.5.39/bin/startup.sh
        ;;
stop)
         /app/tomcat8/apache-tomcat-8.5.39/bin/shutdown.sh


        ;;
restart)
         /app/tomcat8/apache-tomcat-8.5.39/bin/shutdown.sh
        sleep 5
         /app/tomcat8/apache-tomcat-8.5.39/bin/startup.sh
        ;;
esac

其中 CATALINA_BASE为每个实例的路径地址,也可以设置JAVA_HOME,JRE_HOME 属性

在每个实例启动

#./start.sh start

可以写一个启动文件启动所有项目

#!/bin/bash
#webapp


CATALINA_HOME=/app/tomcat8/apache-tomcat-8.5.39
export CATALINA_HOME


export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export JAVA_OPTS='-Xms251m -Xmx512m'  

case "$1" in
start)
         for  num  in  {1..6};  do
         echo "webapp0$num start ..."
         /app/tomcat8/tomcat-ins/webapp0"$num"/start.sh start
         sleep 5
         tomcatpid=`ps -ef | grep java| grep webapp0$num | grep -v grep | awk '{print $2}'`
        
         echo  "webapp0$num start success, pid in: $tomcatpid"
        done
        ;;
stop)
        for  num  in  {1..6};  do
        
         tomcatpid=`ps -ef | grep java| grep webapp0$num | grep -v grep | awk '{print $2}'`
         echo "webapp0$num stop ... pid :$tomcatpid "
         /app/tomcat8/tomcat-ins/webapp0"$num"/start.sh stop
         kill -9  "$tomcatpid" 
         
        echo  "webapp0$num stop success"
        done
        ;;
restart)
         for  num  in  {1..6};  do
        
         tomcatpid=`ps -ef | grep java| grep webapp0$num | grep -v grep | awk '{print $2}'`
         echo "webapp0$num stop ... pid :$tomcatpid "
         /app/tomcat8/tomcat-ins/webapp0"$num"/start.sh stop
         kill -9  "$tomcatpid" 
         
        echo  "webapp0$num stop success"
        done
        
         for  num  in  {1..6};  do
         echo "webapp0$num start ..."
         /app/tomcat8/tomcat-ins/webapp0"$num"/start.sh start
         sleep 5
         tomcatpid=`ps -ef | grep java| grep webapp0$num | grep -v grep | awk '{print $2}'`
        
         echo  "webapp0$num start success, pid in: $tomcatpid"
        done
        ;;
esac

复制启动文件至 /etc/init.d/tomcat后
centos7:输入service tomcat start/stop启动或关闭

service tomcat start
service tomcat stop

以下是我配置的截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是完整的单机多例模式部署情况,小弟第一次做分布式项目,后面还会陆续更新分布式碰到的各种问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值