Tomcat多实例配置

news2024/9/20 1:00:06

目录

一. 复制程序文件

二. 启动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实例。 

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

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

相关文章

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

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

存储无界限:MK米客方德SD NAND系列,小容量到大容量的全方位覆盖

在这个数字化飞速前进的时代&#xff0c;数据存储的需求日益增长&#xff0c;不同的应用场景对存储容量的要求也各不相同。MK米客方德公司以其SD NAND系列产品&#xff0c;凭借其广泛的容量覆盖&#xff0c;从1Gb到512Gb&#xff0c;为各种应用场景提供了完美的存储解决方案。今…

AWS WAF 中的验证码和挑战 | 网页抓取时如何解决这个问题

正如许多企业或爬虫用户所知&#xff0c;AWS WAF&#xff08;Web 应用防火墙&#xff09;是一个强大的安全解决方案&#xff0c;旨在保护 Web 应用免受常见的网络攻击和漏洞。其关键功能之一是使用 CAPTCHA 和挑战来区分合法用户和潜在的恶意机器人。虽然这增强了安全性&#x…

session 共享、Nginx session 共享、Token、Json web Token 【JWT】等认证

.NET JWT JWT 》》Json Web Token header . payload . Signature 三部分组成 JWT 在线生成 》》 https://jwt.io/ 》》https://tooltt.com/jwt-encode/ 》》解码工具 https://tool.box3.cn/jwt.html JWT 特点 无状态 JWT不需要在服务端存储任何状态&#xff0c;客户端可以携…

华为开发者大会闪耀东莞,康佳电视携手海思惊艳亮相

近日&#xff0c;华为开发者大会&#xff08;HDC2024&#xff09;在东莞松山湖举行。 作为电视领域唯一受邀参展的品牌&#xff0c;康佳电视以其优秀的创新实力&#xff0c;携手华为海思共同展示了基于OpenHarmony Standard层级的鸿鹄媒体创新方案。该方案不仅能够为用户带来更…

网络构建关键技术_1.网络高可用设计

1.网络高可用性概述 随着网络快速发展及应用日益深入&#xff0c;各种核心和增值业务在网络上广泛部署&#xff0c;网络的作用愈来愈凸显出来。即使网络出现短时间中断&#xff0c;都可能对业务带来比较大的影响&#xff0c;甚至给企业造成一定程度的经济损失。因此&#xff0c…

LeetCode 算法:对称二叉树 c++

原题链接&#x1f517;&#xff1a;对称二叉树 难度&#xff1a;简单⭐️ 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;ro…

FreeRTOS实时操作系统

1.认识实施操作系统 1.1 裸机和实时操作系统 裸机&#xff1a; 早期嵌入式开发没有嵌入式操作系统的概念&#xff0c;直接操作裸机&#xff0c;在裸机上写程序&#xff0c;比如用51单片机基本就没有操作系统的概念。 通常把程序设计为前后台系统&#xff0c;主要分为两部分&a…

路由(urls)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Django的URL路由流程&#xff1a; l Django查找全局urlpatterns变量&#xff08;urls.py&#xff09;。 l 按照先后顺序&#xff0c;对URL逐一匹…

我做个人站长 7 年的经验,最痛的莫过于。。

大家好&#xff0c;我是程序员鱼皮&#xff0c;从大学期间上线个人博客网站开始&#xff0c;我做个人站长已经有 7 年多了。在这个过程中&#xff0c;我收获了很多&#xff0c;除了技术成长带来的快乐外&#xff0c;个人站长最开心的莫过于有用户使用、并且留下好评&#xff0c…

数据库精选题(七)(综合模拟题二)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 一、名词解释 1、事务 2、弱实体集 3、正…

顶尖项目经理都在用的SOP

接受任务SOP 了解任务背景了解任务目标&#xff08;包含deadline&#xff09;拆解任务&#xff0c;确认负责人执行方案审批确认跟进执行并定期汇报验收结果&#xff0c;进行反馈相关文档存档&#xff0c;形成闭环 推进任务SOP - PDCA循环 制定计划 Plan。依据目标&#xff0c…

【面试题】面试小技巧:如果有人问你 xxx 技术是什么?_面试问你对什么技术特别了解

前端工程越来越大&#xff0c;前面几种方案不能很好的支持单元测试。 在这样的背景下&#xff0c;React 诞生了。React 带来了新的思维模式&#xff0c;UI fn(props)&#xff0c;React 中一个组件就是一个函数或者一个类&#xff0c;一个函数或者一个类就是一个基础单位&…

OpenFeign 的请求处理流程

流程 1. 定义 Feign 客户端接口 首先&#xff0c;开发者需要定义一个 Feign 客户端接口&#xff0c;并使用 FeignClient 注解进行配置。例如&#xff1a; FeignClient(name "aService", url "http://localhost:8080") public interface ServiceProvid…

数据库 复习题

有一个关系模式&#xff1a;工程关系&#xff08;工程号&#xff0c;工程名称&#xff0c;职工号&#xff0c;姓名&#xff0c;聘期&#xff0c;职务&#xff0c;小时工资率&#xff0c;工时&#xff09;&#xff0c;公司按照工时和小时工资率支付工资&#xff0c;小时工资率由…

【面试题】马上金九银十了,简历该准备起来了,面试题你准备好了吗 ?浅谈 JS 浅拷贝和深拷贝

代码展示 let obj_old {name: Tom,age: 15,favorite: {food: bread,drink: milk} } let obj_new {...obj_old} console.log(obj_old obj_new) // false console.log(obj_old.name obj_new.name) // true console.log(obj_old.favorite obj_new.favorite) // true3. Ar…

什么是档案业务建设评价

档案业务建设评价是对档案管理机构或部门在档案业务建设方面进行的评估和考核。评价主要根据一定的评价标准和指标&#xff0c;对档案业务的各个方面进行综合评估&#xff0c;包括档案收集、整理、保管、利用等环节&#xff0c;以及档案管理机构的组织管理、技术能力等方面。 评…

OnlyOffice:现代办公的最佳选择

目录 安装 使用 评价 对比&#xff08;与WPS&#xff09; 总结 在当今的数字化办公时代&#xff0c;选择一款功能全面且易于使用的办公软件至关重要。OnlyOffice作为一款现代化的办公软件&#xff0c;凭借其强大的功能和友好的用户体验&#xff0c;逐渐成为了众多企业和个…

【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评

随着远程工作的普及和数字化办公的发展&#xff0c;越来越多的人开始寻找一款具有强大功能和便捷使用的办公软件。在这个时候&#xff0c;ONLYOFFICE 8.1应运而生&#xff0c;成为了许多用户的新选择。ONLYOFFICE 8.1是一种办公套件软件&#xff0c;它提供了文档处理、电子表格…

19、删除链表的倒数第

1、题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 …