博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat多实例多应用
阅读量:2337 次
发布时间:2019-05-10

本文共 3360 字,大约阅读时间需要 11 分钟。

配置多实例多应用

多实例多应用:多个 Tomcat 部署多个不同的项目。这种模式在服务器资源有限,或者对服务器要求并不是很高的情况下,可以实现多个不同项目部署在同一台服务器上的需求,来实现资源使用的最大化

有一种做法就是简单的复制出一个新的 Tomcat 目录后改一下端口,这种方法应用起来也是可以的,但是会有几个问题:

1 当你对集群中Tomcat 版本升级 如何做?
2 当你需要针对每一个不同的 Web 服务分配不用的内存时,你需要怎么做

官方建议配置多实例方法

在这里插入图片描述
上图中的 CATALINA_HOME 指Tomcat安装路径,CATALINA_BASE 指实例所在位置。CATALINA_HOME 路径下只需要包含 bin 和 lib 目录,而 CATALINA_BASE 只存放 conf、webapps、logs 等这些文件,这样部署的好处在于升级方便,配置及安装文件间互不影响,在不影响 Tomcat 实例的前提下,替换掉 CATALINA_HOME 中的安装文件。

下面是具体操作过程

1 首先进入Tomcat安装路径
[root@tom01 tools]# cd /usr/local/
[root@tom01 local]# ls
bin etc games include jdk lib lib64 libexec sbin share src tomcat

创建两个实例目录

mkdir tomcat-1 tomcat-2
[root@tom01 local]# ls
bin etc games include jdk lib lib64 libexec sbin share src tomcat tomcat-1 tomcat-2

2 拷贝文件到实例目录

cd /usr/local/tomcat
cp -r conf/ webapps/ temp/ logs/ work/ …/tomcat-1
[root@tom01 tomcat]# ll …/tomcat-1
总用量 20
drwxr-xr-x 3 root root 4096 3月 6 17:02 conf
drwxr-xr-x 2 root root 4096 3月 6 17:02 logs
drwxr-xr-x 2 root root 4096 3月 6 17:02 temp
drwxr-xr-x 7 root root 4096 3月 6 17:02 webapps
drwxr-xr-x 3 root root 4096 3月 6 17:02 work

cp -r conf/ webapps/ temp/ logs/ work/ …/tomcat-2

[root@tom01 local]# ll tomcat-2
总用量 20
drwxr-xr-x 3 root root 4096 3月 6 17:03 conf
drwxr-xr-x 2 root root 4096 3月 6 17:03 logs
drwxr-xr-x 2 root root 4096 3月 6 17:03 temp
drwxr-xr-x 7 root root 4096 3月 6 17:03 webapps
drwxr-xr-x 3 root root 4096 3月 6 17:03 work

3 创建启动文件

mkdir /usr/local/tomcat-shell
启动脚本
[root@tom01 tomcat-shell]#vim start_tomcat.sh

#!/bin/bashexport CATALINA_HOME=/usr/local/tomcatexport CATALINA_BASE=${1%/}echo $CATALINA_BASETOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'`echo $TOMCAT_IDif [ -n "$TOMCAT_ID" ] ; thenecho "tomcat(${TOMCAT_ITOMCAT_ID}) still running now , please shutdown it firest";    exit 2;fiTOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh`if [ "$?" = "0" ]; then    echo "$0 ${1%/} start succeed"else    echo "$0 ${1%/} start failed"    echo $TOMCAT_START_LOGfi

停止脚本

[root@tom01 tomcat-shell]# vim stop_tomcat.sh

#!/bin/bashexport CATALINA_HOME=/usr/local/tomcatexport CATALINA_BASE=${1%/}echo $CATALINA_BASETOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'`if [ -n "$TOMCAT_ID" ] ; thenTOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh`else    echo "Tomcat instance not found : ${1%/}"    exitfiif [ "$?" = "0" ]; then    echo "$0 ${1%/} stop succeed"else    echo "$0 ${1%/} stop failed"    echo $TOMCAT_STOP_LOGfi

4 修改实例端口

同一个服务器部署不同 Tomcat 要设置不同的端口,不然会报端口冲突,所以我们只需要修改conf/server.xml中的其中前三个端口就行了。但它有四个分别是
Server Port:该端口用于监听关闭tomcat的shutdown命令,默认为8005
Connector Port:该端口用于监听HTTP的请求,默认为8080
AJP Port:该端口用于监听AJP( Apache JServ Protocol )协议上的请求,通常用于整合Apache Server等其他HTTP服务器,默认为8009
Redirect Port:重定向端口,出现在Connector配置中,如果该Connector仅支持非SSL的普通http请求,那么该端口会把 https 的请求转发到这个Redirect Port指定的端口,默认为8443;

我这里吧tomcat-1 端口设为 8081 tomcat-2 端口设为 8082

5 为每个实例创建不同的测试页面

[root@tom01 local]# vim /usr/local/tomcat-1/webapps/ROOT/index.jsp
[root@tom01 local]# vim /usr/local/tomcat-2/webapps/ROOT/index.jsp

插入代码

Tomcat-1    Hello Tomcat! from Tomcat-1.

6 启动多实例

/usr/local/tomcat-shell/start_tomcat.sh /usr/local/tomcat-1
/usr/local/tomcat-shell/start_tomcat.sh /usr/local/tomcat-2

7 检查启动情况

[root@tom01 local]# netstat -ant|grep “808”
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN

访问测试

在这里插入图片描述在这里插入图片描述

转载地址:http://lurpb.baihongyu.com/

你可能感兴趣的文章
如何显示过滤的ng-repeat数据的长度
查看>>
@import vs #import - iOS 7
查看>>
如何使用C#解析JSON?
查看>>
如何从MySQL中的表中删除列
查看>>
我已经安装了哪个版本的Python?
查看>>
ng-if和ng-show / ng-hide有什么区别
查看>>
将Java InputStream的内容写入OutputStream的简便方法
查看>>
用Java复制文件的标准简洁方法?
查看>>
管理webpack中的jQuery插件依赖项
查看>>
删除可能不存在的文件的大多数pythonic方式
查看>>
如何在Eclipse中为Java文本编辑器更改字体大小?
查看>>
我们应该@Override接口的方法实现吗?
查看>>
ng-repeat定义次数而不是重复数组?
查看>>
选择语句以查找某些字段的重复项
查看>>
引导程序中“col-md-4”,“col-xs-1”,“col-lg-2”中数字的含义
查看>>
JavaScript ES6类中的私有属性
查看>>
List vs tuple,何时使用? [重复]
查看>>
默认情况下,如何以管理员身份运行Visual Studio?
查看>>
通过varargs参数可能导致堆污染
查看>>
Git学习笔记1 神奇的git stash
查看>>