Tomcat多实例配置与tomcat反向代理集群

news2024/12/23 22:32:53

目录

Tomcat多实例配置

1.首先配置Tomcat单实例

2.tomcat多实例配置

1.1复制单实例tomcat

1.2修改端口,以启动多实例。多实例之间端口不能一致

1.3对比文件不同之处

3.启动tomcat

4.检查端口查看是否启动:

5.测试浏览器访问

 二、tomcat反向代理集群

 1、负载均衡器说明

2、配置负载均衡器

3.启动nginx

4.使用命令进行访问测试

5.、在浏览器上进行访问测试


Tomcat多实例配置

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

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

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

1.首先配置Tomcat单实例

单实例配置参考博主博客
部署TOMCAT详解-CSDN博客

2.tomcat多实例配置

1.1复制单实例tomcat
[root@java-tomcat1 application]# cp -r tomcat/ tomcat2
[root@java-tomcat1 application]# cp -r tomcat/ tomcat3
1.2修改端口,以启动多实例。多实例之间端口不能一致
[root@java-tomcat1 application]# sed -i 's#8005#8011#;s#8080#8081#' tomcat2/conf/server.xml
[root@java-tomcat1 application]# sed -i 's#8005#8012#;s#8080#8082#' tomcat3/conf/server.xml
1.3对比文件不同之处
[root@java-tomcat1 application]# diff tomcat2/conf/server.xml tomcat3/conf/server.xml

3.启动tomcat

[root@java-tomcat2 application]# cd /data/application/tomcat2/bin/
[root@java-tomcat2 bin]# vim start.sh
#!/bin/bash
#tomcat2
export CATALINA_BASE="/data/application/tomcat2"

case "$1" in

start)
    $CATALINA_BASE/bin/startup.sh
    ;;
stop)
    $CATALINA_BASE/bin/shutdown.sh
esac
[root@java-tomcat2 bin]# chmod +x start
#修改catalina.sh ---添加如下内容
[root@java-tomcat2 bin]# vim catalina.sh
CATALINA_HOME=/data/application/tomcat2  #添加的环境变量注意修改
[root@java-tomcat bin]# cd /data/application/tomcat3/bin/
[root@java-tomcat3 bin]# vim start.sh
#!/bin/bash
#tomcat3
export CATALINA_BASE="/data/application/tomcat3"

case "$1" in

start)
    $CATALINA_BASE/bin/startup.sh 
    ;;
stop)
    $CATALINA_BASE/bin/shutdown.sh
esac
[root@java-tomcat3 bin]# chmod +x start.sh
[root@java-tomcat3 bin]# vim catalina.sh
CATALINA_HOME=/data/application/tomcat3
启动:
[root@java-tomcat2 ~]# /data/application/tomcat2/bin/start.sh start
[root@java-tomcat2 ~]# /data/application/tomcat3/bin/start.sh start

4.检查端口查看是否启动:

[root@java-tomcat1 application]# netstat -lntp | grep java 
tcp6       0      0 127.0.0.1:8011          :::*                    LISTEN      1729/java           
tcp6       0      0 127.0.0.1:8012          :::*                    LISTEN      1783/java           
tcp6       0      0 :::8081                 :::*                    LISTEN      1729/java           
tcp6       0      0 :::8082                 :::*                    LISTEN      1783/java           
tcp6       0      0 :::8019                 :::*                    LISTEN      1729/java           
tcp6       0      0 :::8029                 :::*                    LISTEN      1783/java

5.测试浏览器访问

http://192.168.50.114:8081/

http://192.168.50.114:8082/

 

 二、tomcat反向代理集群

 1、负载均衡器说明

 关闭防火墙和selinux

yum安装nginx
[root@nginx-proxy ~]# cd /etc/yum.repos.d/
[root@nginx-proxy yum.repos.d]# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
[root@nginx-proxy yum.repos.d]# yum install yum-utils -y
[root@nginx-proxy yum.repos.d]# yum install nginx -y

2、配置负载均衡器

备份原配置文件并修改

[root@nginx-proxy ~]# cd /etc/nginx/conf.d/
[root@nginx-proxy conf.d]# cp default.conf default.conf.bak
[root@nginx-proxy conf.d]# mv default.conf tomcat.conf
[root@nginx-proxy conf.d]# vim tomcat.conf
server {
    listen       80;
    server_name  localhost;
    access_log  /var/log/nginx/proxy.access.log  main;

    location / {
       proxy_pass http://testweb;
       proxy_set_header Host $host:$server_port;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }       
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    } 
}
创建upstream配置文件:
[root@nginx-proxy conf.d]# vim upstream.conf
upstream testweb {
	server 192.168.50.114:8081 weight=1 max_fails=1 fail_timeout=2s;
	server 192.168.50.114:8082 weight=1 max_fails=1 fail_timeout=2s;
}

3.启动nginx

[root@nginx-proxy ~]# systemctl start nginx

4.使用命令进行访问测试

使用curl 命令进行测试,tail进行关键字提取

[root@nginx-proxy ~]# curl -s 192.168.50.118 | tail -1 
8082
[root@nginx-proxy ~]# curl -s 192.168.50.118 | tail -1 
8081

5.、在浏览器上进行访问测试

http://192.168.50.118/

http://192.168.50.118/

         

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

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

相关文章

Thymeleaf基础教程

系列文章目录 文章目录 系列文章目录一、Thymeleaf 语法规则二、Thymeleaf 语法分为以下 2 类标准表达式语法th 属性2.1 基础语法2.1.1 变量表达式 ${}2.1.2 选择变量表达式 *{}2.1.3 链接表达式 {} 2.1.4 消息表达式 三、常用的 th 标签四、迭代循环 一、Thymeleaf 语法规则 …

【MySQL】MVCC多版本并发控制

目录 一、数据库的并发场景二、多版本并发控制隐藏字段undo日志模拟MVCCRead View整体流程RC(不可重复读)和RR(可重复读)的本质区别 一、数据库的并发场景 数据库并发的场景无非如下三种: 读-读并发:不存…

web前端项目-实现录音功能【附源码】

录音功能 运行效果&#xff1a;本项目可实现录音软件的录音、存储、播放等功能 HTML源码&#xff1a; &#xff08;1&#xff09;index.html&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/h…

Linux线程API使用与分析

线程是操作系统进程调度器可调度的最小粒度的执行单元 执行ps -eLF查看线程 UID PID PPID LWP C NLWP SZ RSS PSR STIME TTY TIME CMD root 103724 103680 103724 0 14 23667 40048 1 Jan24 ? 00:00:13 /root/.vscode-serv…

【Redis】list以及他的应用场景

介绍 &#xff1a;list 即是 链表。链表是一种非常常见的数据结构&#xff0c;特点是易于数据元素的插入和删除并且且可以灵活调整链表长度&#xff0c;但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList&#xff0c;但是 C 语言并没有实现…

运行VUE提示找不到模块validate-engines.js...

原来好好的&#xff0c;突然提示找不到模块validate-engines.js&#xff0c;CMD命令行输入npm -v不是内部或外部命令&#xff0c;node -v可以查看到版本号。 解决&#xff1a; 1. 卸载nodejs&#xff0c;重新下载安装文件&#xff1a;下载nodejs 2. 到目录&#xff1a;C:\Us…

在Visual Studio 2022中将源文件扩展名改为 .c 后,没有显示 #define _CRT_SECURE_NO_WARNINGS 1?

一、问题 在Visual Studio 2022中将源文件扩展名改为 .c 后&#xff0c;没有显示 #define _CRT_SECURE_NO_WARNINGS 1&#xff1f; 二、解答 对于使用了不安全的C运行时库函数&#xff08;如strcpy、scanf等&#xff09;而触发的安全警告&#xff0c;编译器不会默认包含_CRT_S…

Ubuntu 20.04 Server 使用命令行设置 IP 地址

1、编辑 /etc/netplan/ 目录下的配置文件00-installer-config.yaml (修改之前&#xff0c;把原来的文件备份) 按照对应的配置进行修改IP地址和网关 2、运行命令使其生效 sudo netplan apply 修改完成后&#xff0c;永久有效。重启后配置不会丢失

解决Linux部署报错No main manifest attribute, in XXX.jar

这是我近期遇到的一个问题&#xff0c;报错原因就是没找到主类&#xff0c;首先你在你本地运行&#xff0c;本地运行ok的话&#xff0c;解压生成的jar包&#xff0c;里面有个META-INF文件&#xff0c;打开MANIFEST.MF文件&#xff0c;该文件是一个清单文件。该文件包含有关JAR文…

宏景eHR FrCodeAddTreeServlet SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

echarts option series smooth

echarts option series smooth 平滑处理 smooth&#xff1a;0.3 echarts_04_line.html <!DOCTYPE html> <html lang"en"><head> <meta charset"utf-8"> <title></title> </head><body><div id&quo…

探讨UI自动化测试几步骤

随着软件开发的不断发展&#xff0c;UI自动化测试变得越来越重要&#xff0c;它能够提高测试效率、降低人为错误&#xff0c;并确保软件交付的质量。本文将介绍UI自动化测试的一般步骤和一些最佳实践&#xff0c;以帮助开发团队更好地实施自动化测试。 需求分析和选择测试工具&…

使用QT实现播放gstreamer的命令(二)

一、前言 上一篇文章写到了&#xff0c;如何快速使用C来执行gstreamer的命令&#xff0c;如何在QT中显示gstreamer的画面&#xff0c;原文如下&#xff1a; https://blog.csdn.net/Alon1787/article/details/135107958 二、近期的其他发现&#xff1a; 1.gstreamer的画面显示在…

echarts:获取省、市、区/县、镇的地图数据

目录 第一章 前言 第二章 获取地图的数据&#xff08;GeoJSON格式&#xff09; 2.1 获取省、市、区/县地图数据 2.2 获取乡/镇/街道地图数据 第一章 前言 需求&#xff1a;接到要做大屏的需求&#xff0c;其中需要用echarts绘画一个地图&#xff0c;但是需要的地图是区/县…

AI语音机器人,智能语音交互

随着人工智能技术的不断发展&#xff0c;AI语音机器人软件在电销行业中得到了广泛应用。这些软件可以通过自动拨打功能&#xff0c;提高销售效率&#xff0c;降低成本&#xff0c;提升客户体验。AI语音机器人软件的主要功能是自动拨打电话。它可以根据预设的规则和算法&#xf…

如何使用Everything随时随地远程访问本地电脑搜索文件

文章目录 前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库&#xff0c;我们需要两个软件的支持&#xff0c;分别是cpolar&#xff08;用于搭建内网穿透数据隧道…

【竞技宝】DOTA2:LGD正式官宣emo离队 setsu加盟担任二号位

北京时间2024年1月29日,随着新年的到来,DOTA2赛事已经进入了新的篇章。本月虽然没有迎来大型赛事,但各种赛事的预选赛却打了不少。国内战队方面,LGD在今年换人之后表现较差,此前传言LGD将对阵容进行调整,就在昨天LGD终于官宣了新年的首次阵容变动。 昨日,LGD在官方微博发布公告…

算法设计与分析实验:滑动窗口与二分查找

目录 一、寻找两个正序数组的中位数 1.1 具体思路 1.2 流程展示 1.3 代码实现 1.4 代码复杂度分析 1.5 运行结果 二、X的平方根 2.1 具体思路 2.2 流程展示 2.3 代码实现 2.4 代码复杂度分析 2.5 运行结果 三、两数之和 II-输入有序数组 3.1 采用二分查找的思想 …

【C深度解剖】const关键字

简介&#xff1a;本系列博客为C深度解剖系列内容&#xff0c;以某个点为中心进行相关详细拓展 适宜人群&#xff1a;已大体了解C语法同学 作者留言&#xff1a;本博客相关内容如需转载请注明出处&#xff0c;本人学疏才浅&#xff0c;难免存在些许错误&#xff0c;望留言指正 作…

4核16G10M幻兽帕鲁服务器只需26元/月?!阿里云挑战全网最低价

1月29日&#xff0c;阿里云又发大招&#xff01;将原先4核16G3M的套餐直接升级至10M&#xff0c;价格从32元直降至26元&#xff01; 目前已是全网幻兽帕鲁4-8人游玩配置的服务器性价比极高的套餐&#xff01; 》》阿里云4核16G10M 26元/月 整理至1月29日&#xff0c;各家幻兽…