设为首页 收藏本站
查看: 706|回复: 0

[经验分享] tomcat配置管理(三):基于多实例的tomcat配置管理

[复制链接]

尚未签到

发表于 2018-12-1 14:07:17 | 显示全部楼层 |阅读模式
  tomcat简介

  有时候,我们希望周期性的更新Tomcat;有时候,我们又想统一管理安装在一台机器上的tomcat(比如让tomcat版本统一,让多个实例的tomcat的依赖统一、配置统一等)。在这些场景下,我们都不希望把Web应用程序的文件放入Tomcat发行版的目录结构中,而是让一个tomcat运行多个实例,并把Web应用放在tomcat的安装目录之外。
  一般在使用Tomcat时,服务器会从conf及webapps目录中读取配置文件,并将文件写入logs、temp和work目录,当然一些jar文件和class文件需要从服务器的公共目录树中予以加载。因此,为了让多个实例能同时运行,每一个Tomcat实例都必须有自己的目录集
  

  本文介绍在同一个tomcat下运行mydomain.com和mysite.com这两个实例的步骤。
     
实验环境介绍:

  红帽Redhat6.6,tomcat和jdk就不再介绍直接在tomcat配置管理一和管理二的基础上进行下一步的扩展
  首先需要设置java环境变量

  #set java evironment
JAVA_HOME=/usr/local/tomcat_jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

#第一个Tomcat,7版本
CATALINA_BASE=/usr/local/tomcat7
CATALINA_HOME=/usr/local/tomcat7
export CATALINA_BASE CATALINA_HOME

  

  #第二个Tomcat,8版本
CATALINA_8_BASE=/usr/local/tomcat8
CATALINA_8_HOME=/usr/local/tomcat8
export CATALINA_8_BASE CATALINA_8_HOME

#第三个Tomcat,9版本
CATALINA_9_BASE=/usr/local/tomcat9
CATALINA_9_HOME=/usr/local/tomcat9
export CATALINA_9_BASE CATALINA_9_HOME

#第一个Tomcat路径
TOMCAT_HOME=/usr/local/tomcat7
export TOMCAT_HOME
#第二个Tomcat路径
TOMCAT_8_HOME=/usr/local/tomcat8
export TOMCAT_8_HOME
#第三个Tomcat路径
TOMCAT_9_HOME=/usr/local/tomcat9
export TOMCAT_9_HOME

  

  
  在此基础上,我们对tomcat8做多实例配置:tomcat8的环境变量需要做如下配置

  CATALINA_8_BASE=/usr/local/tomcat-instance/mydomain.com
CATALINA_8_HOME=/usr/local/tomcat8
export CATALINA_8_BASE CATALINA_8_HOME

  
然后在/usr/local/下创建一个文件夹tomcat-instance(该文件夹用于存放tomcat所有实例),与tomcat8同级别目录,并在这个文件夹下分别创建mydomain.com和mysite.com两个实例文件夹:
mkdir tomcat-instance
cd tomcat-instance
mkdir mydomain.com
mkdir mysite.com
  对于mydomain.com,依次做以下步骤:
1. 拷贝Tomcat安装目录的conf文件夹下的所有内容,到mydomain.com文件夹下:

cd mydomain.com
cp -a /usr/local/tomca8/conf .
  mkdir common logs temp server shared webapps work
  2.修改mydomain.com/conf/server.xml,中三个端口号
  我的规划是:
  tomcat7
  关闭断后号是8005+1 ,启动端口号是8080+1,AJP端口号是8009+1
  tomcat 8

  
  关闭断后号是8005+2 ,启动端口号是8080+1,AJP端口号是8009+2
  tomcat-instance

  
  关闭断后号是8005+3 ,启动端口号是8080+1,AJP端口号是8009+3
  tomcat9

  
  关闭断后号是8005+4 ,启动端口号是8080+1,AJP端口号是8009+4
  

  
  3.删除server.xml中所有的Context元素(因为这份server.xml来自于tomcat的安装目录,如果曾经用该tomcat部署过项目,server.xml中就会有Context元素,由于现在没有将这些项目复制到mydomain.com实例的webapps文件夹下)及嵌套的所有元素,并加入与自己的webapps相关的内容。
  
4.修改tomcat8的bin下的catalina.sh,添加如下选项
  # OS specific support.  $var _must_ be set to either true or false.
#add myself
export CATALINA_BASE=$CATALINA_8_BASE
export CATALINA_HOME=$CATALINA_8_HOME
#export CATALINA_8_HOME=/usr/local/tomcat8
#export ATALINA_8_BASE=/usr/local/tomcat-instance/mydomain.com

  

  5.为了简化变量设置步骤,创建tomcat启动脚本start-mydomain.sh,并将该文件放在tomcat-instance目录下,该文件的内容如下:[root@agent2 tomcat-instance]# ls
mydomain.com  mysite.com  start-mydomain.sh
[root@agent2 tomcat-instance]# pwd
/usr/local/tomcat-instance
[root@agent2 tomcat-instance]# cat start-mydomain.sh
#!/bin/bash
export CATALINA_8_BASE=/usr/local/tomcat-instance/mydomain.com
export CATALINA_8_HOME=/usr/local/tomcat8

cd $CATALINA_8_HOME
./bin/catalina.sh start     //注明:停止脚本把catalina.sh 改成shudown.sh即可
[root@agent2 tomcat-instance]#

  

  

  

  6.修改脚本的权限,使其可执行:chmod 700 start-mydomain.sh
  7.用脚本启动tomcat实例:
  [root@agent2 tomcat-instance]# sh start-mydomain.sh
Using CATALINA_BASE:   /usr/local/tomcat-instance/mydomain.com
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat-instance/mydomain.com/temp
Using JRE_HOME:        /usr/local/tomcat_jdk
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@agent2 tomcat-instance]#

  可以看到,这个实例使用的CATALINA_BASE是instance/mydomain.com,这里的CATALINA_HOME是安装tomcat的目录。
  
8.拷贝示例文件到mydomain.com/webapps/mydoamin目录,从浏览器验证启动的tomcat实例
  实例文件可以编辑一个html可以放置一张图片
  http://ip:8083/mydomain

  另一个实例mysite.com也按照1~8的步骤依次进行,但是注意以下步骤的不同配置:
  
2)Server端口号修改为8080+5。
3)Connector端口号修改为8080+5。
5)脚本中的CATALINA_BASE修改为/home/user/Software/tomcat-instance/mysite.com。

  
  
另外用脚本启动mysite.com实例的路径也需要更改下
  

  [root@agent2 tomcat-instance]# ps -ef | grep java
root       6105      1  9 15:48 pts/1    00:00:03 /usr/local/tomcat_jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat-instance/mysite.com/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat-instance/mysite.com -Dcatalina.home=/usr/local/tomcat8 -Djava.io.tmpdir=/usr/local/tomcat-instance/mysite.com/temp org.apache.catalina.startup.Bootstrap start
root       6139      1 47 15:49 pts/1    00:00:03 /usr/local/tomcat_jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat-instance/mydomain.com/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat-instance/mydomain.com -Dcatalina.home=/usr/local/tomcat8 -Djava.io.tmpdir=/usr/local/tomcat-instance/mydomain.com/temp org.apache.catalina.startup.Bootstrap start
root       6163   2876  0 15:49 pts/1    00:00:00 grep java
[root@agent2 tomcat-instance]#

  

  当把Web应用的文件和Tomcat发行版的文件分开管理后,升级Tomcat将会变得十分容易,因为我们可以用新目录直接替换整个Tomcat发行版的目录。
  

  小结:在建立多个tomcat配置是一定合理规划端口,避免端口占用服务起不来,浪费时间调整端口还不如提前先规划号端口设置。在做第二个实例的时候我发现下面的理解有点问题:
  

  在此基础上,我们对tomcat8做多实例配置:tomcat8的环境变量需要做如下配置

  CATALINA_8_BASE=/usr/local/tomcat-instance/mydomain.com
CATALINA_8_HOME=/usr/local/tomcat8
export CATALINA_8_BASE CATALINA_8_HOME

  

  CATALINA_8_BASE应该还是设置tomcat8的安装路径,要是有有一万个实例,那我这里不要配置一万个新base,然后在tomcat8的bin/catalina.sh做环境变量映射
  export CATALINA_BASE=$CATALINA_8_BASE
export CATALINA_HOME=$CATALINA_8_HOME

  

  最后在实例的同一级别目录去设置区设置启动脚步,脚本中的环境变量才是实际实例路径中的配置路径
  [root@agent2 tomcat-instance]# cat start-mydomain.sh
#!/bin/bash
export CATALINA_8_BASE=/usr/local/tomcat-instance/mydomain.com
export CATALINA_8_HOME=/usr/local/tomcat8

cd $CATALINA_8_HOME
./bin/catalina.sh start
[root@agent2 tomcat-instance]# cat start-mysite.sh
#!/bin/bash
export CATALINA_8_BASE=/usr/local/tomcat-instance/mysite.com
export CATALINA_8_HOME=/usr/local/tomcat8

cd $CATALINA_8_HOME
./bin/catalina.sh start
[root@agent2 tomcat-instance]#


  实例启动脚本--->调用tomcat8的catcalina.sh启动环境设置--->catcalina.是用变量赋值,然后去调用/etc/profile系统原始的base

  

  
  


  

  
  



  

  

  
  


  

  


  

  

  







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642015-1-1.html 上篇帖子: linux下安装tomcat-H3Coutdoor 下篇帖子: Maven 集成Tomcat插件自动发布项目到tomcat的webapps目录下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表