Tomcat多实例配置

目录

一. 复制程序文件

二. 启动tomcat多实例

三. Tomcat多实例+负载均衡 


 

多实例(多进程):同一个程序启动多次,分为两种情况:

第一种:一台机器跑多个站点;

第二种:一个机器跑一个站点多个实例,配合负载均衡

注:该tomacat练习实验环境续接 Tomcat简介与安装-CSDN博客

一. 复制程序文件

[root@localhost ~]# cd /data/application/
[root@localhost application]# ls
tomcat[root@localhost application]# ls
tomcat[root@localhost application]# cp -r tomcat/ tomcat2
[root@localhost application]# cp -r tomcat/ tomcat3
[root@localhost application]# mv tomcat tomcat1
[root@localhost application]# ls
tomcat1  tomcat2  tomcat3#修改端口,以启动多实例。多实例之间端口不能一致
[root@localhost application]# sed -i 's#8005#8011#;s#8080#8081#' tomcat2/conf/server.xml
[root@localhost application]# sed -i 's#8005#8012#;s#8080#8082#' tomcat3/conf/server.xml
[root@localhost application]# sed -i 's#8009#8019#' tomcat2/conf/server.xml
[root@localhost application]# sed -i 's#8009#8029#' tomcat3/conf/server.xml#对比文件不同之处
[root@localhost application]# diff3 tomcat1/conf/server.xml tomcat2/conf/server.xml tomcat3/conf/server.xml
====
1:22c<Server port="8005" shutdown="SHUTDOWN">
2:22c<Server port="8011" shutdown="SHUTDOWN">
3:22c<Server port="8012" shutdown="SHUTDOWN">
====
1:67cDefine a non-SSL/TLS HTTP/1.1 Connector on port 8080
2:67cDefine a non-SSL/TLS HTTP/1.1 Connector on port 8081
3:67cDefine a non-SSL/TLS HTTP/1.1 Connector on port 8082
====
1:69c<Connector port="8080" protocol="HTTP/1.1"
2:69c<Connector port="8081" protocol="HTTP/1.1"
3:69c<Connector port="8082" protocol="HTTP/1.1"
====
1:77cport="8080" protocol="HTTP/1.1"
2:77cport="8081" protocol="HTTP/1.1"
3:77cport="8082" protocol="HTTP/1.1"
====
1:122c<!-- Define an AJP 1.3 Connector on port 8009 -->
2:122c<!-- Define an AJP 1.3 Connector on port 8019 -->
3:122c<!-- Define an AJP 1.3 Connector on port 8029 -->
====
1:126cport="8009"
2:126cport="8019"
3:126cport="8029"

二. 启动tomcat多实例

给每个示例加上一个数字,用来标识

[root@localhost application]# echo 8080 >> tomcat/webapps/ROOT/index.jsp
[root@localhost application]# echo 8081 >> tomcat2/webapps/ROOT/index.jsp
[root@localhost application]# echo 8082 >> tomcat3/webapps/ROOT/index.jsp

创建一键启动或关闭脚本

vim /usr/bin/tomcat
#!/usr/bin/bash
tomcat_home=/data/applicationfor i in `ls $tomcat_home | grep -P "tomcat\d+"`
do
export CATALINA_BASE=$tomcat_home/$i
case $1 in
start)
$CATALINA_BASE/bin/startup.sh >> /dev/null
echo $i已启动
;;
stop)
$CATALINA_BASE/bin/shutdown.sh >> /dev/null
echo $i已停止
;;
restart)
$CATALINA_BASE/bin/shutdown.sh >> /dev/null
echo $i已停止
$CATALINA_BASE/bin/startup.sh>> /dev/null
echo $i已启动
;;
esac
done

加执行权限

[root@localhost application]# chmod +x /usr/bin/tomcat

启动 

[root@localhost application]# tomcat stop
tomcat1已停止
tomcat2已停止
tomcat3已停止
[root@localhost application]# tomcat start
tomcat1已启动
tomcat2已启动
tomcat3已启动

 查看端口

[root@localhost application]# ss -tnlp
State       Recv-Q      Send-Q                Local Address:Port             Peer Address:Port      Process                                
LISTEN      0           128                         0.0.0.0:22                    0.0.0.0:*          users:(("sshd",pid=855,fd=3))         
LISTEN      0           1                [::ffff:127.0.0.1]:8005                        *:*          users:(("java",pid=27625,fd=59))      
LISTEN      0           1                [::ffff:127.0.0.1]:8011                        *:*          users:(("java",pid=27635,fd=58))      
LISTEN      0           1                [::ffff:127.0.0.1]:8012                        *:*          users:(("java",pid=27648,fd=58))      
LISTEN      0           128                            [::]:22                       [::]:*          users:(("sshd",pid=855,fd=4))         
LISTEN      0           100                               *:8080                        *:*          users:(("java",pid=27625,fd=52))      
LISTEN      0           100                               *:8081                        *:*          users:(("java",pid=27635,fd=52))      
LISTEN      0           100                               *:8082                        *:*          users:(("java",pid=27648,fd=52)) 

浏览器输入IP访问不同端口测试如图打开的三个实例:

三. Tomcat多实例+负载均衡 

下载nginx

[root@localhost application]# yum install -y nginx

启动nginx

[root@localhost application]# systemctl enable --now nginx

编辑配置文件 

[root@localhost application]# vim /etc/nginx/nginx.conf

#配置文件里新增一个块upstream ,然后在server块中新增一个location块,如下代码,配置文件里其他地方不用修改。 

upstream testapp {server 192.168.226.20:8080;server 192.168.226.20:8081;server 192.168.226.20:8082;}server {listen       80;listen       [::]:80;server_name  _;root         /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass http://testapp;}error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

更新nginx配置

[root@localhost application]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost application]# nginx -s reload

现在浏览器访问IP地址即可发现轮询前面配置的tomcat实例。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录训练营第十六天 513找树左下角的值 112路径总和I 113路径总和II 106从中序和后序遍历序列构造二叉树

第一题&#xff1a; 原题链接&#xff1a;513. 找树左下角的值 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;用回溯的思想&#xff1a; 这题就是求最大深度&#xff0c;当遍历到第一个最大深度的时候&#xff0c;记录下的节点值就是最左边的元素。 参数和返回…

BFS与DFS

BFS与DFS BFS和DFS 是最简单实现的搜索算法&#xff0c;其他的搜索算法其实都是在他们的基础上发展优化而来的。 力扣模板题 这里要优化一下才可以过这道题 1. BFS BFS 通过 队列来实现 每次都会先遍历当前节点的邻接节点 //这里是用邻接表来表示图 bool bfs(vector<ve…

react学习——13react高阶函数_函数柯里化

1、高阶函数柯里化实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><!-- 移动端适配--><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…

提取图像主色调

依赖 Pillow 库。 提取图像主色调&#xff0c;直接上代码&#xff1a; from PIL import Imagedef extract_main_color(img_path: str, delta_h: float 0.3) -> str:"""获取图像主色调Args:img_path: 输入图像的路径delta_h: 像素色相和平均色相做减法的绝…

MIL图像处理那些事:定义感兴趣区域ROI的两种方法(示例项目C#源码)

文章目录 效果展示第一种方法:通过鼠标框选GetROIForm构造函数如何缩放--MdispZoom的使用Ctr+滚轮缩放放大两倍:如何平移--MdispPan的使用双击返回ROI第二种方法:直接编辑ROI框显示ROI示例项目C#源码(百度网盘)本示例提供两种方法定义感兴趣区域ROI 效果展示 第一种方法:通过鼠…

测试基础15:测试用例设计方法-场景设计(流程分析)

课程大纲 1、定义 系统多个功能串联形成业务流程&#xff0c;不仅需要验证正确的主流程&#xff0c;而且需要验证各个功能点各种异常情况。 2、应用场景 与因果图&判定表方法的相似之处&#xff1a;界面需手动填写的输入框少&#xff0c;基本只需选择有限的几个&#xff08…

AppInventor2程序设计里代码块较多,有点卡,有没有办法解决?

问&#xff1a;请问下程序设计里面写的程序比较多&#xff0c;有点卡&#xff0c;这个有没有办法呢&#xff1f; 答&#xff1a;AppInventor2目前不支持代码块的模块化&#xff0c;不过也有一些技巧可以减少代码块的数量&#xff0c;还能提高代码的质量&#xff1a; 1. 提取过程…

小抄 20240620

1 段永平和他的徒弟们经常提的三个词&#xff1a;平常心&#xff0c;本分&#xff0c;常识。 都是很普通的道理&#xff0c;但普通人基本不用。常识&#xff0c;平常人不认识。 2 觉得一件事很大的时候&#xff0c;可以让自己变得更大&#xff0c;来稀释事情的大小。 一个…

Ubuntu系统 常用工具

Ubuntu系统 常用工具 1 输入法 googlepinyin 参考&#xff1a; https://blog.csdn.net/qq_36393978/article/details/118483011 卸载fcitx残留 sudo apt-get remove fcitx sudo apt-get remove fcitx-module* sudo apt-get remove fcitx-frontend* sudo apt-get purge fcit…

Jenkins定时构建自动化(四):Python 的 argparse 模块

目录 一、主要功能和用途 二、核心类和方法 三、总结 四、argparse模块示例 Jenkins定时构建自动化(一)&#xff1a;Jenkins下载安装配置-CSDN博客 Jenkins定时构建自动化(二)&#xff1a;Jenkins的定时构建-CSDN博客 Jenkins定时构建自动化(三)&#xff1a;手动定时构建…

[FreeRTOS 基础知识] 信号量 概念

文章目录 信号量定义信号量特性 信号量定义 信号量是一个抽象的数据类型&#xff0c;通常包含一个整数值以及一个等待该值变为正数的任务列表&#xff08;也称为等待队列&#xff09;。信号量的整数值代表了系统中某种资源的可用数量。 在操作系统中信号量用于控制对共享资源访…

提升办公效率的利器—OnlyOffice文档8.1深度体验

目录 1. 前言 2. 安装 3. 基本使用 3.1 文档编辑 3.2 表格处理 3.3 演示文稿 4. 个人评价 5. 总结 1. 前言 在当今信息化时代&#xff0c;办公软件已经成为我们日常工作中不可或缺的工具。无论是撰写文档、处理数据&#xff0c;还是制作演示文稿&#xff0c;办公软件的…

MySQL MVCC详解

目录 前言 MVCC实现原理 UndoLog版本链 ReadView MVCC是否可以解决不可重复读与幻读 隔离级别 READ UNCOMMITTED - 读未提交与脏读 READ COMMITTED - 读已提交与不可重复读 REPEATABLE READ - 可重复读与幻读 SERIALIZABLE - 串行化 小结 前言 为了提高数据库并发能力…

GNSS接收机的工作原理

GNSS接收机的工作原理如下&#xff1a; 信号接收&#xff1a;GNSS接收机通过天线接收来自卫星导航系统的信号&#xff0c;这些信号包含卫星的位置、时间和健康状态等信息。 信号处理&#xff1a;接收的信号首先经过前置放大器放大&#xff0c;然后经过滤波器滤除噪声。接收机会…

邂逅Three.js探秘图形世界之美

可能了解过three.js等大型的3D 图形库同学都知道啊&#xff0c;学习3D技术都需要有图形学、线性代数、webgl等基础知识&#xff0c;以前读书学的线性代数足够扎实的话听这节课也会更容易理解&#xff0c;这是shader课程&#xff0c;希望能帮助你理解着色器&#xff0c;也面向第…

图象去噪1-使用中值滤波与均值滤波

1、中值滤波 使用中值滤波去除图像的异常像素点&#xff0c;使用cv2.cv2.medianBlur(img, 3)表示再图像在中值滤波窗口3*3的范围内&#xff0c;从下到大排序&#xff0c;将当前值替换为排序中值&#xff08;如下图所示&#xff09;将56替换为&#xff08;56&#xff0c;66,90,…

JeecgFlow并行网关概念及案例演示

概念讲解 并行网关能够在一个流程中用于进行并发建模处理&#xff0c;将单条线路拆分成多条路径并行执行&#xff0c;或者将多条路径合并处理。 在一个流程模型中引入并发最直接的网关就是并行网关&#xff0c;它基于进入和外出顺序流&#xff0c;有分支和合并两种行为&#xf…

Android中使用Scroller实现View的弹性滑动

在 Android 开发中&#xff0c;Scroller 类用于实现 View 的弹性滑动效果。它并不会直接滚动 View&#xff0c;而是用于计算滑动的偏移量&#xff0c;然后应用到 View 上。以下是 Scroller 实现 View 弹性滑动的主要步骤&#xff1a; 1. 初始化 Scroller 首先&#xff0c;在自…

想拥有一个独一无二的AI人物?Lora炼丹训练模型教程来啦

之前答应过大家放出来的Lora本地训练教程&#xff0c;终于写好啦。 会训练lora&#xff0c;代表着你可以生成属于你的独一无二的角色。 你可以让这个角色在各种不同背景的地方出现&#xff0c;可以让它摆出各种姿势&#xff0c;满足你的无限幻想。 还有的商家&#xff0c;用…

Centos 7 或 8配置国内yum源及epel源-1

官方教程 Yum工具详解 清理Yum缓存:[rootqfedu.com ~]# yum clean all缓存软件包信息: 提高搜索/安装软件的速度[rootqfedu.com ~]# yum makecache查询yum源信息: [rootqfedu.com ~]# yum repolist 查找软件:[rootqfedu.com ~]# yum search mysql 此命令会搜索到系…