首页 / TOMCAT / (6) tomcat多实例部署
(6) tomcat多实例部署
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(6) tomcat多实例部署,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8142字,纯文字阅读大概需要12分钟。
内容图文
![(6) tomcat多实例部署](/upload/InfoBanner/zyjiaocheng/1056/79553ba4254245849008254bb9774824.jpg)
Tomcat 的基本组成
tomcat的单实例部署见https://www.cnblogs.com/liliyang/p/9742284.html
安装好之后,看下目录结构:
[root@docker121 tomcat]# ll total 96 drwxr-xr-x 2 root root 4096 Aug 2800:08 bin drwxr-xr-x 3 root root 198 Oct 512:30 conf drwxr-xr-x 2 root root 4096 Aug 2722:32 lib -rw-r--r-- 1 root root 57011 Dec 12017 LICENSE drwxr-xr-x 2 root root 4096 Oct 500:11 logs -rw-r--r-- 1 root root 1444 Dec 12017 NOTICE -rw-r--r-- 1 root root 6792 Dec 12017 RELEASE-NOTES -rw-r--r-- 1 root root 16242 Dec 12017 RUNNING.txt drwxr-xr-x 3 root root 49 Oct 500:19 temp drwxr-xr-x 10 root root 162 Oct 422:11 webapps drwxr-xr-x 3 root root 22 Aug 2722:35 work
再介绍一下各个目录及文件:
- bin :主要存放脚本文件,例如比较常用的windows和linux系统中启动和关闭脚本
- conf :主要存放配置文件,其中最重要的两个配置文件是server.xml和web.xml
- lib :主要存放tomcat运行所依赖的包
- LICENSE :版权许可证,软件版权信息及使用范围等信息
- logs :主要存放运行时产生的日志文件,例如catalina.out(曾经掉过一个大坑)、catalina.{date}.log等
- NOTICE :通知信息,一些软件的所属信息和地址什么的
- RELEASE-NOTES:发布说明,包含一些版本升级功能点
- RUNNING.txt :运行说明,必需的运行环境等信息
- temp :存放tomcat运行时产生的临时文件,例如开启了hibernate缓存的应用程序,会在该目录下生成一些文件
- webapps :部署web应用程序的默认目录,也就是 war 包所在默认目录
- work :主要存放由JSP文件生成的servlet(java文件以及最终编译生成的class文件)
上面是Tomcat安装后的组成部分,进入bin目录执行startup.sh或catalina.sh start 就可以了,接着就可以在浏览器输入http://localhost:8080/访问了。
那么问题来了:当你有了三个、五个以及十个应用服务需要同时部署到同一台服务器上时,你的 Tomcat 服务正确启动方式是什么?是把上面文件全部复制出 N 多个目录么?还是有其他处理方式呢?
Tomcat 常见的几种部署场景
通常,我们在同一台服务器上对Tomcat部署需求可以分为以下几种:单实例单应用,单实例多应用,多实例单应用,多实例多应用。
实例的概念可以理解为上面说的一个Tomcat目录。
- 单实例单应用:比较常用的一种方式,只需要把你打好的war包丢在webapps目录下,执行启动 Tomcat 的脚本就行了。
- 单实例多应用:有两个不同的 Web 项目 war 包,还是只需要丢在webapps目录下,执行启动 Tomcat 的脚本,访问不同项目加上不同的虚拟目录。这种方式要慎用在生产环境,因为重启或挂掉 Tomcat 后会影响另外一个应用的访问。
- 多实例单应用:多个 Tomcat 部署同一个项目,端口号不同,可以利用 Nginx 这么做负载均衡,当然意义不大。
- 多实例多应用:多个 Tomcat 部署多个不同的项目。这种模式在服务器资源有限,或者对服务器要求并不是很高的情况下,可以实现多个不同项目部署在同一台服务器上的需求,来实现资源使用的最大化
本文要说的就是这种多实例多应用方式,但多个 Tomcat 就是简单的复制出一个新的 Tomcat 目录后改一下端口么?当然不是,其实真这么做也可以,当当同一台服务器部署了多个不同基于 Tomcat 的 Web 服务时,会遇到下面几个极其现实的问题。
- 当你需要对数十台 Tomcat 版本进行升级的时候,你需要怎么做?
- 当你需要针对每一个不同的 Web 服务分配不用的内存时,你需要怎么做?
- 当你需要启动多台服务器时,你需要怎么做?
当然,好像上面的都不是很重要,注意,划重点,多实例部署最大作用就是最大化利用服务器资源。
官方文档:
不建议复制一个又一份的全部 Tomcat 目录进行多实例的部署,说安照下图可以实现更优雅的 Tomcat 单机多实例部署:
CATALINA_HOME指Tomcat安装路径,CATALINA_BASE指实例所在位置。
CATALINA_HOME路径下只需要包含bin和lib目录,
CATALINA_BASE只存放conf、webapps、logs等这些文件
这样部署的好处在于升级方便,配置及安装文件间互不影响,在不影响Tomcat实例的前提下,替换掉CATALINA_HOME中的安装文件。
主机地址:10.0.0.125
环境:CentOS 7.x
1、安装JDK,见https://www.cnblogs.com/liliyang/p/9742284.html
2、部署tomcat,按照单实例部署
mkdir -p /application/tomcat-8.5.31
cd /application/
下载或上传tomcat源码包
tar xvf apache-tomcat-8.5.31.tar.gz
mv apache-tomcat-8.5.31/* /application/tomcat-8.5.31/
ln -s tomcat-8.5.31/ tomcat
echo ‘export CATALINA_HOME="/application/tomcat"‘ >> /etc/profile
echo ‘export PATH="${CATALINA_HOME}/bin:${PATH}"‘ >> /etc/profile
source /etc/profile
cd tomcat
mkdir tomcat-01
mv conf/ LICENSE logs/ NOTICE RELEASE-NOTES RUNNING.txt temp/ webapps/ work/ tomcat-01
cp -a tomcat-01/ tomcat-02
[root@sample tomcat]# ll total 8 drwxr-x--- 2 root root 4096 Oct 503:55 bin drwxr-x--- 2 root root 4096 Oct 503:55 lib drwxr-xr-x 7 root root 138 Oct 503:59 tomcat-01 drwxr-xr-x 7 root root 138 Oct 503:59 tomcat-02 [root@sample tomcat]# ll tomcat-01 total 84 drwx------ 2 root root 238 Apr 2716:26 conf -rw-r----- 1 root root 57092 Apr 2716:26 LICENSE drwxr-x--- 2 root root 6 Apr 2716:24 logs -rw-r----- 1 root root 1723 Apr 2716:26 NOTICE -rw-r----- 1 root root 7138 Apr 2716:26 RELEASE-NOTES -rw-r----- 1 root root 16246 Apr 2716:26 RUNNING.txt drwxr-x--- 2 root root 30 Oct 503:55 temp drwxr-x--- 7 root root 81 Apr 2716:24 webapps drwxr-x--- 2 root root 6 Apr 2716:24 work [root@sample tomcat]# ll tomcat-02 total 84 drwx------ 2 root root 238 Apr 2716:26 conf -rw-r----- 1 root root 57092 Apr 2716:26 LICENSE drwxr-x--- 2 root root 6 Apr 2716:24 logs -rw-r----- 1 root root 1723 Apr 2716:26 NOTICE -rw-r----- 1 root root 7138 Apr 2716:26 RELEASE-NOTES -rw-r----- 1 root root 16246 Apr 2716:26 RUNNING.txt drwxr-x--- 2 root root 30 Oct 503:55 temp drwxr-x--- 7 root root 81 Apr 2716:24 webapps drwxr-x--- 2 root root 6 Apr 2716:24 work
3、新建 Tomcat 启动、停止脚本
注意:多实例启停脚本中必须设定CATALINA_BASE变量
mkdir -p /application/tomcat/tomcat-shell/
cd /application/tomcat/tomcat-shell/
cat >> start-tomcat01.sh <<end
#!/bin/bash
export CATALINA_BASE="/application/tomcat/tomcat-01"
export CATALINA_HOME="/application/tomcat"
/application/tomcat/bin/catalina.sh start
end
cat >> stop-tomcat01.sh <<end
#!/bin/bash
export CATALINA_BASE="/application/tomcat/tomcat-01"
export CATALINA_HOME="/application/tomcat"
/application/tomcat/bin/catalina.sh stop
end
cat >> start-tomcat02.sh <<end
#!/bin/bash
export CATALINA_BASE="/application/tomcat/tomcat-02"
export CATALINA_HOME="/application/tomcat"
/application/tomcat/bin/catalina.sh start
end
cat >> stop-tomcat02.sh <<end
#!/bin/bash
export CATALINA_BASE="/application/tomcat/tomcat-02"
export CATALINA_HOME="/application/tomcat"
/application/tomcat/bin/catalina.sh stop
end
[root@sample tomcat-shell]# ll total 16 -rw-r--r-- 1 root root 128 Oct 504:15 start-tomcat01.sh -rw-r--r-- 1 root root 128 Oct 504:15 start-tomcat02.sh -rw-r--r-- 1 root root 127 Oct 504:17 stop-tomcat01.sh -rw-r--r-- 1 root root 127 Oct 504:17 stop-tomcat02.sh
修改实例2服务的启动端口
cd ../tomcat-02/conf/
修改server.xml文件,将其中的服务端口(默认8005)、2个连接器端口(默认8080和8009)及转发端口(默认8443)全部修改,避免和tomcat01实例冲突
cd ../webapps/ROOT/
cat >>index.html<<end
<html>
<title>Tomcat-02</title>
<body>
This is from tomcat-02.
</body>
</html>
end
cat >>/application/tomcat/tomcat-01/webapps/ROOT/index.html<<end
<html>
<title>Tomcat-01</title>
<body>
This is from tomcat-01.
</body>
</html>
end
chmod +x /application/tomcat/tomcat-shell/*
启动测试:
[root@sample tomcat-shell]# /application/tomcat/tomcat-shell/start-tomcat01.sh Using CATALINA_BASE: /application/tomcat/tomcat-01 Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/tomcat-01/temp Using JRE_HOME: /application/jdk/jre Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar Tomcat started. [root@sample tomcat-shell]# /application/tomcat/tomcat-shell/start-tomcat02.sh Using CATALINA_BASE: /application/tomcat/tomcat-02 Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/tomcat-02/temp Using JRE_HOME: /application/jdk/jre Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar Tomcat started. [root@sample tomcat-shell]# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 000.0.0.0:22220.0.0.0:* LISTEN 24892/python3 tcp 000.0.0.0:220.0.0.0:* LISTEN 19441/sshd tcp 000.0.0.0:50000.0.0.0:* LISTEN 24892/python3 tcp6 0 0 :::8080 :::* LISTEN 96531/java tcp6 0 0 :::8081 :::* LISTEN 96583/java tcp6 00 :::22 :::* LISTEN 19441/sshd tcp6 0 0 127.0.0.1:8005 :::* LISTEN 96531/java tcp6 0 0 127.0.0.1:8006 :::* LISTEN 96583/javatcp6 00 :::8009 :::* LISTEN 96531/java tcp6 00 :::8010 :::* LISTEN 96583/java
停止:
[root@sample tomcat-shell]# /application/tomcat/tomcat-shell/stop-tomcat01.sh Using CATALINA_BASE: /application/tomcat/tomcat-01 Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/tomcat-01/temp Using JRE_HOME: /application/jdk/jre Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar [root@sample tomcat-shell]# /application/tomcat/tomcat-shell/stop-tomcat02.sh Using CATALINA_BASE: /application/tomcat/tomcat-02 Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/tomcat-02/temp Using JRE_HOME: /application/jdk/jre Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar [root@sample tomcat-shell]# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 000.0.0.0:22220.0.0.0:* LISTEN 24892/python3 tcp 000.0.0.0:220.0.0.0:* LISTEN 19441/sshd tcp 000.0.0.0:50000.0.0.0:* LISTEN 24892/python3 tcp6 00 :::22 :::* LISTEN 19441/sshd
原文:https://www.cnblogs.com/liliyang/p/9745282.html
内容总结
以上是互联网集市为您收集整理的(6) tomcat多实例部署全部内容,希望文章能够帮你解决(6) tomcat多实例部署所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。