Nginx 和 tomcat 实现负载均衡(一)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: ​ 在上一篇文章中已经介绍了Nginx服务器的安装配置,感兴趣的小伙伴可以点击连接阅读​ ​配置Nginx虚拟主机​​,本文主要介绍Tomcat及Nginx + Tomcat负载均衡群集。

📝理论讲解:


Tomcat简介

名称由来:Tomcat最初是Sun的软件架构师詹姆斯 · 邓肯 · 戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给APache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而O'Reilly出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

其实Tomcat最早在开始研发的时候并不叫这个名字,早期Tomcat项目的名字叫Cataline,所以当我们安装完Tomcat后会法相安装路径下面有很多和Cataline有光的目录和文件,而这些文件通常也是我们使用或配置Tomcat的重要文件。


应用场景

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。一般来说,Tomo cat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。


f85f094e3efdfa39711ae2fa152202f.png



Tomcat Server的组成部分说明

Server元素代表了整个Catalina的server容器

Service是这样一个集合:它由一个或多个Connector,以及一个Engine(负责处理所有Connector所获得的客户请求)组成。

Connector:一个Connector在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回给客户。

Tomcat有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其他WebServer的请求。

Coyote Http/1.1 Conector在端口8080处侦听来自客户browse的http请求。

Coyote JK2 Connector在端口8009 处侦听来自其他WebServer(Apache)的servlet/jsp代理请求。

Engine:Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。

当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给Host来处理。

Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给默认Host来处理。

Host:Host代表一个Virtual Host,即虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配。

每个虚拟主机下都可以部署(deploy)一个后者多个Web App,每个Web App对应一个Context,有一个Context path。

当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是"最长匹配",所以一个path==" "的Context将成为该Host的默认Context匹配

Context:一个Context对应一个Web Application,一个Web Application由一个或者多个Servlet组成。


📖实验配置与实现:


拓扑图:


234b47ff4c23ec97d0bb675d527816c.png


推荐步骤:


Nginx 服务器开启路由转发功能,客户端和 tomcat 服务器配置 IP 地址设置正确

安装 tomcat 服务器配置网站

安装 Nginx 代理和负载均衡功能配置 DNS 服务器域名解析, 客户端使用域名www.nlb.com 负载均衡访问站


实验步骤:


一、Nginx 服务器开启路由转发功能,客户端和 tomcat 服务器配置 IP 地址设置正确


1、配置 Nginx 服务 IP 地址和路由转发功能


1)Nginx 服务器生成网卡配置文件

f9e62234cc60ebe7ee6f7dcd945c0d8.png


2)配置内网网卡 IP 地址

a9bc6bcf00a03adcd5ef3ccea9d2eda.png

ec92079d14bb600891bda705d32244c.png


3)配置外网网卡 IP 地址


0159222e64a7db65cc1f7842a4c4b5e.png

186f3907c929d6c3cf2dc253e50481e.png


4)重新启动服务查看 IP 地址

e67c7d95a95951ead49afa4d6b1b8d5.png


5)配置路由转发功能开启路由功能

e99a031d99e3943a96a3ebcfe815d31.png

8c86775619e30d3d35f4ccdad69422c.png

347bb74ce59479c4289ee185c10eb3f.png


2、第一台 tomcat 服务器配置 IP 地址


1)第一台 tomcat 服务器配置 IP 地址

da692f2e67af803da4f647b996739a0.pnge431d436fa45a8a078caef936f6235c.png


2)重新启动网卡服务查看配置的网关


c45840f1085046880b37cda5b937363.png


3、第二台 tomcat 服务器配置 IP 地址


1)修改网卡置文件


21cb2631bf8346cc780680f71533dcb.png

5101fbfe5ea3dc52e9c31418a7e2d49.png


2)重启网卡服务查看配置的网关


cd5fe350e6d3aba9876354cb3a89697.png


4、客户端配置 IP 地址和 DNS


1)客户端配置 IP 地址和 DNS


77c630620900d7b0bc2a1f813da7370.png


2)查看配置的 IP 地址


44d9ca8c17ff0e71b3285a95fc67a98.png


二、安装 tomcat 服务器配置网站


1、安装第一台 tomcat 服务器


1)切换到程序光盘

a01bc13ab66472c3999462af21ea6a7.png


2)挂载程序光盘到/mnt


5d0fd599951abbbcef10fa35c2656d8.png


3)解压 tomcat 移动 tomcat 安装位置

742bb8c45bd7c8a5e0151e8f86ee0dc.png


2、配置第一台 tomcat 服务器

1)创建网站服务器根目录设置网站主页


f45c0b53c7500db7d256a89aa79d9b3.png


2)修改 tomcat 主配置文件加载网站根目录


058a63b2c341f1aa28a33f007a3207b.png

bce2184e32d6e0104fd3f6c3f74d31a.png


3)启动 tomcat 服务查看服务运行状态


3f3dda6728cb6dfb7395e58efb89d47.png


3、安装第二台 tomcat 服务器


1)切换到程序光盘

356cd14a7374fddbf22dd7434d513db.png



2)挂载程序光盘到/mnt

30bce2b622ec8035ab16e3a7ac509a4.png


3)解压 tomcat 移动 tomcat 安装位置

9708ae7a1930c1c51fcc95e6f877fae.png


4、配置第二台 tomcat 服务器


1)创建网站服务器根目录设置网站主页


75bba44ac43a1a1b2ab58efe90a008b.png


2)修改 tomcat 主配置文件加载网站根目录


cc0f5a19382793ba3e9f879a2b86e8c.png

c5d81f07acf5a43c6cebaba8b30b212.png


3)启动 tomcat 服务查看服务运行状态


b3d183ec8252656315503ed110013b7.png



相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
11天前
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
105 59
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
102 0
|
23天前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
113 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
7天前
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
19 3
|
11天前
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
|
20天前
|
负载均衡 应用服务中间件 nginx
Nginx的6大负载均衡策略及权重轮询手写配置
【10月更文挑战第9天】 Nginx是一款高性能的HTTP服务器和反向代理服务器,它在处理大量并发请求时表现出色。Nginx的负载均衡功能可以将请求分发到多个服务器,提高网站的吞吐量和可靠性。以下是Nginx支持的6大负载均衡策略:
102 7
|
18天前
|
负载均衡 算法 Java
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
尼恩,一位资深架构师,分享了关于负载均衡及其策略的深入解析,特别是基于权重的负载均衡策略。文章不仅介绍了Nginx的五大负载均衡策略,如轮询、加权轮询、IP哈希、最少连接数等,还提供了手写加权轮询算法的Java实现示例。通过这些内容,尼恩帮助读者系统化理解负载均衡技术,提升面试竞争力,实现技术上的“肌肉展示”。此外,他还提供了丰富的技术资料和面试指导,助力求职者在大厂面试中脱颖而出。
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
|
21天前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
45 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
|
28天前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
32 3
|
28天前
|
开发框架 负载均衡 前端开发
Nginx负载均衡
Nginx负载均衡