Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动)

这篇具有很好参考价值的文章主要介绍了Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Tomcat 多实例

1.1 什么是Tomcat多实例?

Tomcat 多实例是指在同一台服务器上运行多个独立的 Tomcat 实例

每个 Tomcat 实例都具有独立的配置文件、日志文件、应用程序和端口。

通过配置不同的端口和文件目录,可以实现同时运行多个独立的 Tomcat 服务器,每个服务器都可以独立处理用户的请求。

这样可以提高服务器的并发处理能力和灵活性,同时隔离不同的应用程序和配置。

1.2 配置思路

1)修改 tomcat 主配置文件 server.xml 中的三个端口号 8080 8005 8009;
2)修改 tomcat 启动停止脚本 startup.sh shutdown.sh,添加 export CATALINA BASE CATALINA HONE TOWCAT HOME 变量都指向实例的工作目录。

1.3 配置实现

1.3.1 安装jdk

步骤1这里不再赘述,详见上一篇博客。

1.3.2 安装tomcat

mkdir /usr/local/tomcat
#实例1
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 
#实例2
cp -a /usr/local/tomcat/tomcat1  /usr/local/tomcat/tomcat2 
#实例3
cp -a /usr/local/tomcat/tomcat1  /usr/local/tomcat/tomcat3

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

1.3.3 配置 tomcat 环境变量

vim /etc/profile.d/tomcat.sh

#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1

#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2

#tomcat3
export CATALINA_HOME3=/usr/local/tomcat/tomcat3
export CATALINA_BASE3=/usr/local/tomcat/tomcat3
export TOMCAT_HOME3=/usr/local/tomcat/tomcat3


source /etc/profile.d/tomcat.sh

1.3.4 修改端口号

----------------------------------------------------------------------------------------------------------
第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
第二个连接器默认监听8009端口,AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口。
----------------------------------------------------------------------------------------------------------
#tomcat2
vim /usr/local/tomcat/tomcat2/conf/server.xml  
#22行,修改Server prot,默认为8005 -> 修改为8006
#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

#tomcat3
vim /usr/local/tomcat/tomcat3/conf/server.xml
#22行,修改Server prot,默认为8005 -> 修改为8007
#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8082
#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8011

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

1.3.5 修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量

以tomcat1为例,tomcat2和tomcat3配置相同

#tomcat1
vim /usr/local/tomcat/tomcat1/bin/startup.sh

export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat1/bin/shutdown.sh

export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

1.3.6 启动各 tomcat 中的 /bin/startup.sh

#都是后台启动
/usr/local/tomcat/tomcat1/bin/startup.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 
/usr/local/tomcat/tomcat3/bin/startup.sh 

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

ss -natp | grep java

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

1.3.7 浏览器访问测试

http://192.168.2.100:8080
http://192.168.2.100:8081
http://192.168.2.100:8082

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat 多实例配置成功

二、Nginx+Tomcat负载均衡、动静分离

2.1 原理部分

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端。

2.2 配置思路

使用七层代理实现动静分离+负载均衡,配置tomcat多实例,多个tomcat轮流处理动态资源(轮询算法);

访问静态资源,由nginx直接处理并响应。

使用四层代理实现nginx负载均衡,客户端到nginx1的请求,由nginx2和nignx3轮流处理(轮询算法)。

2.3 配置部分

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

nginx1 192.168.2.102

nginx2 192.168.2.103

nginx3 192.168.2.104

tomcat1 192.168.2.100:8080

tomcat2 192.168.2.100:8081

tomcat3 192.168.2.100:8082

2.3.1 配置nginx1,四层代理实现负载均衡

前置准备

#关闭防火墙和selinux
systemctl disable firewalld.service --now
setenforce 0

编译安装nginx,用systemd管理

#依赖
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建管理用户
useradd -M -s /sbin/nologin nginx

#编译安装ngnix
cd /opt
tar -zxf nginx-1.18.0\ .tar.gz

cd nginx-1.18.0

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
--with-stream										#启用 stream模块,提供4层调度

make -j2 && make install 

#软连接 添加到环境变量中
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

#添加到系统服务中
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

systemctl daemon_reload
chmod 754 /lib/systemd/system/nginx.service
#启动nginx
systemctl start nginx
systemctl status nginx 

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

配置负载均衡,四层代理实现

vim /usr/local/nginx/conf/nginx.conf
...
#写在http部分上面
stream {
	
    upstream myserver {
		server 192.168.2.103:80 weight=1;
		server 192.168.2.104:80 weight=1;
    }
    server {
        listen 80;
        proxy_pass myserver;
    }
}

nginx -t
nginx -s reload 

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

ss -natp | grep nginx

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

2.3.2 配置nginx2和nginx3,七层代理动静分离

nginx2和nginx3的配置基本相同

以nginx2为例

前置准备

systemctl disable firewalld --now
setenforce 0

yum安装nginx

yum -y install epel-release.noarch -y
yum -y install nginx 

systemctl start nginx 

编辑配置文件 七层代理负载均衡,轮询+动静分离

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

nginx -t 
nginx -s reload

创建静态页面+准备测试图片

#静态页面
cd /usr/share/nginx/html
mkdir byyb
echo "This is static source ,from byyb" > index.html

#准备测试图片,放在byyb下

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

nginx3的配置大概相同,除了准备相同名字,不同内容的图片和静态网页,用于测试负载均衡

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

2.3.3 Tomcat配置,作为动态资源服务器

已经配置了多实例,配置详细过程见上文。

前置准备

systemctl disable firewalld --now
setenforce 0

准备动态资源

mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test /usr/local/tomcat/tomcat3/webapps/test
#创建动态页面

#tomcat1
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>   
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

#tomcat2
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>  
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>

#tomcat3
vim /usr/local/tomcat/tomcat3/webapps/test/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test3 page</title>   #指定为 test2 页面
</head>
<body>
<% out.println("动态页面 3,http://www.test3.com");%>
</body>
</html>
#重启服务

/usr/local/tomcat/tomcat1/bin/shutdown.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 

/usr/local/tomcat/tomcat2/bin/shutdown.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 

/usr/local/tomcat/tomcat3/bin/shutdown.sh 
/usr/local/tomcat/tomcat3/bin/startup.sh 
ss -natp | grep java #测试

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

2.3.4 静态页面测试

浏览器访问 http://192.168.2.102/test.jpg
多次刷新

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

浏览器访问 http://192.168.2.102/index.html

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构
Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

2.3.5 动态资源测试

#访问代理服务器
浏览器访问http://192.168.2.102/test/index.jsp
多次刷新

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构

Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动),tomcat,负载均衡,nginx,运维,架构文章来源地址https://www.toymoban.com/news/detail-703754.html

到了这里,关于Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】Nginx+Tomcat负载均衡、动静分离、多实例部署

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 要求各 tomcat 实例配置不能有重复的端口号 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器默认监听8009端口,AJP端

    2024年02月09日
    浏览(54)
  • Tomcat服务部署、优化及多实例实验(Nginx+Tomcat负载均衡、动静分离)

    目录 1 Tomcat 1.1 tomcat 构成 1.2 什么是 servlet? 1.3 什么是 JSP? 1.4 Tomcat 功能组件结构 1.5 Container 结构分析 1.6 Tomcat 请求过程 2 Tomcat 服务部署 2.1 环境部署 2.1.1 ​编辑 2.1.2 设置JDK环境变量 2.2 安装启动Tomcat 2.3 优化tomcat启动速度 2.4 主要目录说明 3 Tomcat 虚拟主机配置 3.1 创建 c

    2024年02月09日
    浏览(26)
  • Nginx+Tomcat(多实例)实现动静分离和负载均衡(四层、七层)

    目录   一、Tomcat 多实例部署 二、反向代理的两种类型 三、Nginx+Tomcat实现负载均衡和动静分离(七层代理) 1.动静分离和负载均衡原理 2.实现方法  3.部署实例 (1)部署Nginx负载均衡服务器 (2)配置Tomcat多实例服务器1 (第一部分已完成) (3)配置Tomcat服务器2 (4)添加动

    2024年02月13日
    浏览(32)
  • 简单认识nginx+Tomcat多实例部署实现动静分离和负载均衡

    1、在安装好jdk环境后,添加两例Tomcat服务 2.添加tomcat环境变量 3.修改 tomcat1 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 (1) (2) (3) 4.修改两个 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量 (1) (2) 5.启动两例 tomcat 运行各自的

    2024年02月12日
    浏览(26)
  • Tomcat多实例和负载均衡动静分离

    目录 一、Tomcat多实例部署 二、负载均衡动静分离 2.1.动静分离 2.11 nginx负载均衡 192.168.30.203 2.22 Tomcat服务器:192.168.30.200 2.23 Tomcat服务器:192.168.30.100 2.24 配置nginx 192.168.30.203静态页面 2.25 配置Tomcat 192.168.30.200 服务器动态页面 2.26 配置Tomcat 192.168.30.100服务器动态页面 2.27 Ngin

    2024年02月10日
    浏览(32)
  • Nginx+Tomcat 负载均衡、动静分离

    目录 一、Nginx代理服务器概念 1.正向代理 2.反向代理 二、动静分离 三、负载均衡  四、Nginx七层代理实验 1.部署Nginx服务 2. 部署Tomcat服务  2.1在192.168.88.50 虚拟机上部署双实例 2.2在192.168.88.60 上部署Tomcat服务器3 3.动静分离配置 3.1Tomcat1 server 配置 3.2 Tomcat2 server 配置 3.3Tomc

    2024年02月08日
    浏览(39)
  • Nginx+Tomcat实现负载均衡、动静分离

    目录 一、Nginx负载均衡实现原理 1.Nginx 实现负载均衡是通过反向代理实现  2、Nginx配置反向代理主要参数 3、动静分离原理  4、Nginx静态处理优势 5、并发量和吞吐量计算 二:7层反向代理          1、环境准备 ​2、配置Nginx Server 3、tomcat1 和tomcat2配置 4、 搭建tomcat3 5、设置

    2024年02月05日
    浏览(45)
  • Nginx+Tomcat负载均衡、动静分离群集

    Nginx是一款非常优秀的HTTP服务器软件,支持高达50000个并发连接数的响应、拥有强大的静态资源处理能力、运行稳定、内存和CPU等系统资源消耗非常低 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力 Nginx实现负载

    2024年02月09日
    浏览(31)
  • Nginx+Tomcat(多实例)实现动静分离和负载均衡四层、七层(总有些惊奇的际遇,比方说当我遇见你)

    1.在安装好jdk环境后,添加两例tomcat服务 2.添加tomcat环境变量 3.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 第一个端口默认为8005,用于监听shutdown关闭信息 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应

    2024年02月08日
    浏览(33)
  • Nginx+Tomcat负载均衡(反向代理)、动静分离集群

    Nginx:正向代理(知道目标服务器) 反向代理(不知道目标服务器) Nginx配置反向代理主要参数 upstream服务池名{}(F5(硬件)和nginx反向代理原理一样) 配置后端服务池,以提供响应数据 proxy_pass http://服务池名 配置将访问请求转发给后端服务器池的服务器处理 定义:将工作任务

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包