tomcat配置管理(三):基于多实例的tomcat配置管理

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目录下,该文件的内容如下:[[email protected] tomcat-instance]# ls
mydomain.com  mysite.com  start-mydomain.sh
[[email protected] tomcat-instance]# pwd
/usr/local/tomcat-instance
[[email protected] 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即可
[[email protected] tomcat-instance]#

6.修改脚本的权限,使其可执行:chmod 700 start-mydomain.sh

7.用脚本启动tomcat实例:

[[email protected] 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.
[[email protected] 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实例的路径也需要更改下

[[email protected] 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
[[email protected] 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

最后在实例的同一级别目录去设置区设置启动脚步,脚本中的环境变量才是实际实例路径中的配置路径

[[email protected] 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
[[email protected] 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
[[email protected] tomcat-instance]#

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










时间: 2024-11-10 08:01:26

tomcat配置管理(三):基于多实例的tomcat配置管理的相关文章

tomcat配置及基于nginx、apache反向代理tomcat

如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求.我们需要一个交互式的Web,于是便诞生了各种Web语言.如Asp,Jsp,Php等.当然,这些语言与传统的语言有着密切的联系,如Php基于C和C 语言,Jsp基于Java语言.Tomcat即是一个Jsp和Servlet的运行平台. Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新

tomcat(三)--基本安装配置

0x01  JDK和Tomcat安装 到oracle官网下载jdk,当前下载的版本是Linux x64 jdk-8u101-linux-x64.tar.gz 到apache官网下载tomcat,当前最新版本 Tomcat 8.5.4 Released jdk和apache的安装都十分简单(这里不是采用源码编译,就像在windows上使用绿色软件那么方便),将下载的文件解压即可使用,然后引入几个环境变量就算是完成了.tomcat是使用java开发的,所以依赖于jdk.使用下面两个命令可以检测安装后

Tomcat 单(多)实例部署使用

一.前言 (一).概述 Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台.安全域管理和Tomcat阀等.由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器.但是,不能将 Tomcat 和Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP

Apache HTTP Server 与 Tomcat 的三种连接方式介绍

Apache HTTP Server 与 Tomcat 的三种连接方式介绍 整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能.利用 Web 服务器来做负载均衡以及容错.无缝的升级应用程序.本文介绍了三种整合 Apache 和 Tomcat 的方式. 3 评论: 刘 冬 ([email protected]), 开发工程师, 2007 年 1 月 15 日 内容 首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomca

一个tomcat部署多个应用实例总结

项目组有好几个项目需要运行,之前项目少,一个tomcat对应一个项目还能应付,但现在项目多了,要是再一个tomcat对应一个项目的话,一方面看起来很业余,一方面也加大服务器的维护难度.所以现在需要对tomcat进行整理,用一个tomcat来启动多个应用实例,每个应用相互独立,互不干扰. 准备工作:下载的apache-tomcat-7.0.26.zip,上传到linux服务器下/opt/apps/目录下. 百牛信息技术bainiu.ltd整理发布到博客园一.操作步骤 1.解压apache-tomc

基于jersey和Apache Tomcat构建Restful Web服务(一)

基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来越多网站的采用.那么问题来了,它是什么呢? 起源 REST(Representational state transfer)在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一. REST 中最重要的概念是资源(resources

Tomcat(tomcat虚拟主机,Tomcat日志,单机多实例配置实战,JVM设置和连接数设置)

一.配置Tomcat的虚拟主机 一.Tomcat虚拟主机基本配置. 在介绍nginx和apache的时候,我们都有提过虚拟主机,在tomcat中也有这么一说, [[email protected] ~]# vim /usr/local/tomcat/conf/server.xml 搜索/Host,其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录,Java的应用通常是一个Jar的压缩包,将jar的压缩包放到appBase目录

Tomcat 8/9 基于APR库的高并发性能优化

一.知识点扫盲 什么是APR?Apache Portable Runtime(APR)项目的任务是创建和维护软件库,为底层平台特定的实现提供可预测且一致的接口.主要目标是提供一个API,软件开发人员可以对其进行编码,并确保可预测的行为,如果不是相同的行为,无论其软件构建的平台如何,都可以减轻他们编写特殊情况的需要,以便解决或采取行动.平台特定缺陷或功能的优势. 二.tomcat的三种模式 Tomcat的运行模式有3种,即BIO.NIO和APR.1.BIO(blocking I/O)即阻塞式I/O

将项目部署到tomcat的三种方法

2014年8月初8    星期五 又到星期五了,可以轻松的敲点东西,不担心睡太晚起不来,或者起来后上班打瞌睡. 由于近期学习了solr相关的知识,部署solr项目到tomcat上的方式很多,包括官方的等.我自己也找了中非官方的方法,感觉很好.而且以前用MyEclipse开发,出错很少,现在用Eclipse所以部署项目后在后台调用user.dir的时候出错,试了一下午也没事出来,而且越试越想试,但是带我的人不让我弄了,他帮我弄,让我干其他任务,我都怀疑是不是他也和我一样就喜欢干这种事情,所以自己去