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:67c
           Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
2:67c
           Define a non-SSL/TLS HTTP/1.1 Connector on port 8081
3:67c
           Define 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:77c
                 port="8080" protocol="HTTP/1.1"
2:77c
                 port="8081" protocol="HTTP/1.1"
3:77c
                 port="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:126c
                 port="8009"
2:126c
                 port="8019"
3:126c
                 port="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/application

for 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实例。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java家庭理财系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘&#xff0c;相机无法对上焦 视觉伺服分类视觉伺服中的坐标系成像模型推导IBVS推导参考文献 视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到&#xff0c;视觉伺服又可以分类为基于位置(PBVS)和基于图像的(IBVS)视觉伺服。 视觉伺服中的坐…

算法设计与分析:并查集法求图论桥问题

目录 一、实验目的 二、问题描述 三、实验要求 四、算法思想 1. 基准算法 1.1 算法思想 1.2 代码 1.3 时间复杂度 2. 使用并查集的高效算法 2.1 算法思想 2.2 代码&#xff1a; 2.3 时间复杂度&#xff1a; 五、实验结果 一、实验目的 1. 掌握图的连通性。 2. 掌…

MySQL数据库初体验+数据库管理(其一)

【1】 操作系统介绍&#xff1a; Linux操作系统有 RedHat CentOS Debian Ubuntu OpenSUSE 信创标准 国产系统 &#xff1a; 华为&#xff08;欧拉&#xff09; 阿里&#xff08;龙蜥&#xff09; 腾讯 &#xff08;tencentOS&#xff09; 麒麟&#xf…

cefsharp 修改请求头request.Headers,以实现某种请求验证(v100+已测试)含主要源码和注释

(一)目的:cefsharp实现修改请求头 Tip:网上搜的很多代码都无法实现(要么版本较低,方法有变,要么就行不通),较多的错误是:集合属性只读。其中一个bili网友的测试方法注解一张图,但没有具体代码。参考一下。 (二)实现方法 2.1 创建对象 ChromiumWebBrowser home…

台式扫描电镜低真空和高真空区别

台式扫描电镜的低真空和高真空模式主要有以下区别&#xff1a; 1. 真空条件&#xff1a;在高真空模式下&#xff0c;扫描电镜工作在高度真空的环境中&#xff0c;通常要求真空度优于\(10^{-3}\) Pa。而低真空模式则允许样品室的真空度相对较低&#xff0c;通常在1&#xff5e;…

08.QT控件:QWidget

一、Widget 简介 Widget 是 Qt 中的核⼼概念.。英⽂原意是 "小部件"&#xff0c;我们此处也把它翻译为 "控件"。控件是构成⼀个图形化界⾯的基本要素。 Qt 作为⼀个成熟的 GUI 开发框架, 内置了⼤量的常⽤控件。并且 Qt 也提供了 "⾃定义控件" 的…

Mysql简述

Java - sql语句学习 sql分类 sql语句 sql数据类型

2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改

JDBC案例 将来如果完成的话 就代表对JDBC里面的知识点全部融会贯通了 其实就是对数据的增删改查 我们入门做不出来前端的内容 很正常 准备环境 建表 use mybatis;create table tbl_brand (id int primary key auto_increment,brand_name varchar(20),company_name varcha…

java数据结构-链表经典习题

前言 上一篇讲解了链表的基本操作详解&#xff0c;接下来练习一下链表的应用。 目录 1.删除链表中等于给定值 val 的所有节点。 题解思路 2.反转一个单链表 思路分析 画图分析 代码实现 3.链表的中间结点 思路分析 画图分析 代码实现 4.链表中倒数最后k个结点 第一解决…

RS-485和RS-422通信的3.3V低功耗收发器MAX3483

描述 多数公司的MAX3483速率为&#xff1a;250kbps&#xff1b; Analog Devices公司的MAX3483速率为10Mbps。 国产MAX3485外观和丝印 该MAX3483ESA为15kV ESD保护、3.3V、低功耗收发器&#xff0c;用于RS-485和RS-422通信。 每个设备包含一个驱动器和一个接收器。 该MAX3483E…

Open3D通过索引提取点云

目录 一、概述 二、代码实现 2.1关键函数 2.2 完整代码 三、实现效果 3.1原始点云 3.2提取后点云 一、概述 在 Open3D 中&#xff0c;通过索引提取点云是一种常见且有效的操作&#xff0c;特别适用于需要处理点云子集的场景&#xff0c;例如提取特定区域的点、降采样、或…

CPsyCoun:心理咨询多轮对话自动构建及评估方法

CPsyCoun: A Report-based Multi-turn Dialogue Reconstruction and Evaluation Framework for Chinese Psychological Counseling 在大模型应用于心理咨询领域&#xff0c;目前开源的项目有&#xff1a; https://github.com/SmartFlowAI/EmoLLM &#xff08;集合&#xff0c;…

query2doc:用大模型做query检索拓展

原文&#xff1a; 前沿重器[38] | 微软新文query2doc&#xff1a;用大模型做query检索拓展 比较主流的检索方案&#xff1a; 字面检索&#xff08;sparse&#xff0c;稀疏&#xff09;向量检索&#xff08;dense&#xff0c;稠密&#xff09; query对文档文段的召回&#xff…

如何在Ubuntu上安装WordPress

如何在Ubuntu上安装WordPress 执行系统更新 apt update && apt upgrade第一步 安装 Apache apt install apache2确认 Apache 安装是否成功. systemctl status apache2安装成功后 打开浏览器输入 http://server-ip-address 第二步 安装 MySQL apt install mariad…

大模型揭秘:AI与CatGPT在实体识别中的创新应用

摘要 尽管大规模语言模型 (LLM) 在各种 NLP 任务上已经取得了 SOTA 性能&#xff0c;但它在 NER 上的性能仍然明显低于监督基线。这是由于 NER 和 LLMs 这两个任务之间的差距&#xff1a;前者本质上是序列标记任务&#xff0c;而后者是文本生成模型。在本文中&#xff0c;我们…

劳易测应用案例:包装机械设备风险评估

提起机器风险评估&#xff0c;客户经常会问 “机器存在哪些风险&#xff1f;”、“如何识别并防止风险&#xff1f;”、“如何依据安全标准对机器进行改造与升级&#xff1f;”以及“如何确保机器符合安全要求&#xff1f;等等。 机器风险评估是什么&#xff1f; 机器风险评估是…

鸿蒙HarmonyOS服务卡片实战

引言 在现代开发中&#xff0c;服务卡片是不可或缺的一部分&#xff0c;比如音乐&#xff0c;天气类等应用&#xff0c;官网的介绍中写道&#xff1a;卡片让您便捷地预览服务信息&#xff0c;例如查看天气或日历日程等内容。您可将卡片添加到屏幕上&#xff0c;让这类信息触手…

【大数据】Hadoop学习笔记

基本概念 Hadoop组成 HDFS: Hadoop分布式文件存储系统, 在Haddop中处于底层/核心地位YARN: 分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎执行MapReduce: 第一代分布式计算引擎, 但因为部分原因, 许多企业都不直接使用MapReduce, 但许多底层软件仍然在使用Ma…

SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET

文章目录 SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SETROLLUP函数GROUPING函数GROUPING SET函数CUBE函数网上例子 写在前面&#xff1a;如果我们想要对分组之后的数据进行类似小计的计算&#xff0c;那么就需要使用到下面的函数 SQL Server - ROLLUP、GROUPING、CUBE、G…