当前位置: 首页 > news >正文

Nginx 和 Tomcat 实现负载均衡

Nginx 和 tomcat 实现负载均衡

🏆荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。

💻微信公众号:微笑的段嘉许

📌本文由微笑的段嘉许原创!

🎉欢迎关注🔎点赞👍收藏⭐留言📝

📆CSDN首发时间:🌴2023年2月日25🌴

✉️坚持和努力一定能换来诗与远方!

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

本文介绍

​ 在上一篇文章中已经介绍了Nginx服务器的安装配置,感兴趣的小伙伴可以点击连接阅读配置Nginx虚拟主机,本文主要介绍Tomcat及Nginx + Tomcat负载均衡群集。


📌导航小助手📌

文章目录

  • Nginx 和 tomcat 实现负载均衡
  • 📝理论讲解:
    • Tomcat简介
    • 应用场景
    • Tomcat Server的组成部分说明
  • 📖实验配置与实现:
  • 一、Nginx 服务器开启路由转发功能,客户端和 tomcat 服务器配置 IP 地址设置正确
    • 1、配置 Nginx 服务 IP 地址和路由转发功能
    • 2、第一台 tomcat 服务器配置 IP 地址
    • 3、第二台 tomcat 服务器配置 IP 地址
    • 4、客户端配置 IP 地址和 DNS
  • 二、安装 tomcat 服务器配置网站
    • 1、安装第一台 tomcat 服务器
    • 2、配置第一台 tomcat 服务器
    • 3、安装第二台 tomcat 服务器
    • 4、配置第二台 tomcat 服务器
  • 三、安装 Nginx 代理和负载均衡功能配置 DNS 服务器域名解析,客户端使用域名 www.nlb.com 负载均衡访问网站
    • 1、安装 Nginx 反向代理依赖软件和 DNS 服务
    • 2、配置 Nginx 代理服务器
    • 3、修改 Nginx 主配置配置支持负载均衡群集
    • 4、配置 DNS 服务器
    • 5、客户端访问验证

📝理论讲解:

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容器,单独运行在后端。

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组成。


📖实验配置与实现:

拓扑图

image-20221104123129549

推荐步骤

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

  • 安装 tomcat 服务器配置网站

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

实验步骤

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

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

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

image-20221104123142324

2)配置内网网卡 IP 地址

image-20221104123151994

image-20221104123156999

3)配置外网网卡 IP 地址

image-20221104123204454

image-20221104123210293

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

image-20221104123216052

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

image-20221104123223333

image-20221104123229230

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

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

image-20221104123253506

image-20221104123300096

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

image-20221104123306079

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

1)修改网卡置文件

image-20221104123312009

image-20221104123317133

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

image-20221104123324791

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

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

image-20221104123330939

2)查看配置的 IP 地址

image-20221104123339343

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

1、安装第一台 tomcat 服务器

1)切换到程序光盘

image-20221104123347555

2)挂载程序光盘到/mnt

image-20221104123353813

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

image-20221104123405272

2、配置第一台 tomcat 服务器

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

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

image-20221104123418255

image-20221104123423377

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

image-20221104123431807

3、安装第二台 tomcat 服务器

1)切换到程序光盘

image-20221104123439078

2)挂载程序光盘到/mnt

image-20221104123446827

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

image-20221104123453083

4、配置第二台 tomcat 服务器

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

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

image-20221104123506177 image-20221104123512712

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

image-20221104123520539

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

1、安装 Nginx 反向代理依赖软件和 DNS 服务

1)切换到系统光盘

image-20221104123529676

2)挂载系统盘到/mnt 目录

image-20221104123535419

3)删除系统自带 yum 源配置本地 yum 源

image-20221104123541504

4)安装依赖程序 image-20221104123549001

5)创建管理 nginx 服务用户

image-20221104123555143

2、配置 Nginx 代理服务器

1) 切换到程序光盘 image-20221104123600747

2)挂载程序光盘到/mnt 目录

image-20221104123608762

3)配置 nginx

image-20221104123614996

4)编译安装 Nginx

image-20221104123620594

5)优化 Nginx 服务命令

image-20221104123627540

3、修改 Nginx 主配置配置支持负载均衡群集

1)修改 Nginx 主配置文件

image-20221104123632195

2)检查 Nginx 主配置文件是否错误

image-20221104123647833

3)启动服务查看端口

image-20221104123655219

4、配置 DNS 服务器

1)修改 DNS 服务器主配置文件检查是否错误

image-20221104123701693

image-20221104123707317

image-20221104123712974

2)配置 DNS 服务于数据库文件

image-20221104123719245

image-20221104123724182

image-20221104123731090

3)启动服务设置开机自动启动

image-20221104123737410

image-20221104123742485

5、客户端访问验证

1)客户端第一次访问网站服务器

image-20221104123748035

2)客户端第二次访问网站服务器

image-20221104123753894


🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

img

相关文章:

Nginx 和 Tomcat 实现负载均衡

Nginx 和 tomcat 实现负载均衡 🏆荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。 💻微信公众号:微笑的段嘉许 📌本文由微笑的段嘉许原创! &am…...

【万能排序之qsort、b_sort 、s_sort】

文章目录前言:star:qsort函数函数参数qsort函数的使用:star:模拟实现万冒泡排序函数参数模拟实现b_sort注意点:star:模拟实现万能选择排序函数参数模拟实现s_sort最后前言 我们所熟悉的冒泡排序,选择排序,插入排序,二分排序等都是基于给定的一…...

利用InceptionV3实现图像分类

最近在做一个机审的项目,初步希望实现图像的四分类,即:正常(neutral)、涉政(political)、涉黄(porn)、涉恐(terrorism)。有朋友给推荐了个github上…...

【Java】CAS锁

一、什么是CAS机制(compare and swap) 1.概述 CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。经过调查发现,…...

Linux服务器配置系统安全加固方法

1. SSH空闲超时时间建议为: 600-900 解决方案: 在【/etc/ssh/sshd_config】文件中设置【ClientAliveInterval】设置为600到900之间 vim /etc/ssh/sshd_config #将 ClientAliveInterval 参数值设置为 900 2. 修改检查SSH密码修改最小间隔 解决方案: 在【/etc/login.defs】文件…...

Codeforces Round #850 (Div. 2, based on VK Cup 2022 - Final Round)(A~E)

t宝酱紫喜欢出这种分类讨论的题&#xff1f;&#xff01;A1. Non-alternating Deck (easy version)给出n张牌&#xff0c;按照题目给的顺序分给两人&#xff0c;问最后两人手中各有几张牌。思路&#xff1a;模拟。AC Code&#xff1a;#include <bits/stdc.h>typedef long…...

qt源码--信号槽

本篇主要从Qt信号槽的连接、断开、调用、对象释放等方面展开&#xff1b; 1.信号建立连接过程 connect有多个重载函数&#xff0c;主要是为了方便使用者&#xff0c;比较常用的有2种方式&#xff1a; a. QObject::connect(&timer, &QTimer::timeout, &loop, &am…...

RecycleView详解

listview缓存请看: listview优化和详解RecycleView 和 ListView对比&#xff1a;使用方法上ListView&#xff1a;继承重写 BaseAdapter&#xff0c;自定义 ViewHolder 与 converView优化。RecyclerView: 继承重写 RecyclerView.Adapter 与 RecyclerView.ViewHolder。设置 Layou…...

【算法】最短路算法

&#x1f600;大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#x1f62b;&#xff0c;但是也想日更的人✈。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4…...

< Linux > 进程间通信

目录 1、进程间通信介绍 进程间通信的概念 进程间通信的本质 进程间通信的分类 2、管道 2.1、什么是管道 2.2、匿名管道 匿名管道的原理 pipe函数 匿名管道使用步骤 2.3、管道的读写规则 2.4、管道的特点 2.5、命名管道 命名管道的原理 使用命令创建命名管道 mkfifo创建命名管…...

学习 Python 之 Pygame 开发魂斗罗(二)

学习 Python 之 Pygame 开发魂斗罗&#xff08;二&#xff09;魂斗罗的需求开始编写魂斗罗1. 搭建主类框架2. 设置游戏运行遍历和创建窗口3. 获取窗口中的事件4. 创建角色5. 完成角色更新函数魂斗罗的需求 魂斗罗游戏中包含很多个物体&#xff0c;现在要对这些物体进行总结 类…...

户籍管理系统测试用例

目录 一、根据页面的不同分别设计测试用例 登录页面 用户信息列表 用户编辑页面 用户更新页面 二、根据目的不同分别设计测试用例 一、根据页面的不同分别设计测试用例 上图是针对一个网站的测试&#xff0c;按照页面的不同分别来设计对应的测试用例。 登录页面 用户信息列…...

(三)代表性物质点邻域的变形分析

本文主要内容如下&#xff1a;1. 伸长张量与Cauchy-Green 张量2. 线元长度的改变2.1. 初始/当前构型下的长度比2.2. 主长度比与 Lagrange/Euler 主方向2.3. 初始/当前构型下任意方向的长度比3. 线元夹角的改变4. 面元的改变5. 体元的改变1. 伸长张量与Cauchy-Green 张量 由于变…...

Stream操作流 练习

基础数据&#xff1a;Data AllArgsConstructor NoArgsConstructor public class User {private String name;private int age;private String sex;private String city;private Integer money; static List<User> users new ArrayList<>();public static void m…...

【模拟集成电路】宽摆幅压控振荡器(VCO)设计

鉴频鉴相器设计&#xff08;Phase Frequency Detector&#xff0c;PFD&#xff09;前言一、VCO工作原理二、VCO电路设计VCO原理图三、压控振荡器&#xff08;VCO&#xff09;测试VCO测试电路图瞬态测试&#xff08;1&#xff09;瞬态输出&#xff08;2&#xff09;局部放大图&a…...

《英雄编程体验课》第 13 课 | 双指针

文章目录 零、写在前面一、最长不重复子串1、初步分析2、朴素算法3、优化算法二、双指针1、算法定义2、算法描述3、条件1)单调性2)时效性三、双指针的应用1、前缀和问题2、哈希问题3、K 大数问题零、写在前面 该章节节选自 《夜深人静写算法》,主要讲解最基础的枚举算法 ——…...

DS期末复习卷(十)

一、选择题(24分) 1&#xff0e;下列程序段的时间复杂度为&#xff08; A &#xff09;。 i0&#xff0c;s0&#xff1b; while (s<n) {ssi&#xff1b;i&#xff1b;} (A) O(n^1/2) (B) O(n ^1/3) © O(n) (D) O(n ^2) 12…xn xn^1/2 2&#xff0e;设某链表中最常用的…...

QT+OpenGL模板测试和混合

QTOpenGL模板测试和混合 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 模板测试 当片段着色器处理完一个片段之后&#xff0c;模板测试会开始执行。和深度测试一样&#xff0c;它可能会丢弃片段&am…...

《英雄编程体验课》第 11 课 | 前缀和

文章目录 零、写在前面一、概念定义1、部分和2、朴素做法3、前缀和4、前缀和的边界值5、边界处理6、再看部分和二、题目描述1、定义2、求解三、算法详解四、源码剖析五、推荐专栏六、习题练习零、写在前面 该章节节选自 《算法零基础100讲》,主要讲解最基础的算法 —— 前缀和…...

Java学习--多线程2

2.线程同步 2.1卖票【应用】 案例需求 某电影院目前正在上映国产大片&#xff0c;共有100张票&#xff0c;而它有3个窗口卖票&#xff0c;请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口&#xff0c;里面定义一个成员变量&#xff1a;privat…...

【Virtualization】Windows11安装VMware Workstation后异常处置

安装环境 Windows 11 专业版 22H2 build 22621.1265 VMware Workstation 17 Pro 17.0.0 build-20800274 存在问题 原因分析 1、BIOS未开启虚拟化。 2、操作系统启用的虚拟化与Workstation冲突。 3、操作系统启用内核隔离-内存完整性保护。 处置思路 1、打开“资源管理器”…...

第四章.神经网络—BP神经网络

第四章.神经网络 4.3 BP神经网络 BP神经网络(误差反向传播算法)是整个人工神经网络体系中的精华&#xff0c;广泛应用于分类识别&#xff0c;逼近&#xff0c;回归&#xff0c;压缩等领域&#xff0c;在实际应用中&#xff0c;大约80%的神经网络模型都采用BP网络或BP网络的变化…...

如何压缩RAR格式文件?

RAR是我们日常生活工作中经常用到的压缩文件格式之一&#xff0c;那么RAR文件如何压缩呢&#xff1f; 不管压缩哪种格式的压缩文件&#xff0c;我们都需要用到压缩软件。针对RAR格式&#xff0c;我们可以选择最常见的WinRAR&#xff0c;当然如果有同样适用于RAR格式的压缩软件…...

JS 执行机制 详解(附图)

一、JS是单线程JS语言的一大特点就是单线程&#xff0c;也就是说&#xff0c;同一个时间只能做一件事。这是JS这门脚本语言诞生的使命所致——用来处理页面中用户的交互&#xff0c;以及操作DOM而诞生的。单线程就意味着&#xff0c;所有任务需要排队&#xff0c;前一个任务结束…...

华为OD机试真题Java实现【 计算面积】真题+解题思路+代码(20222023)

计算面积 绘图机器的绘图笔初始位i在原点(0.0)。 机器启动后其绘图笔按下面规则绘制直线: 1 )尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E, 2 )期间可通过指令在纵坐标轴方向进行偏移。井同时绘制直线,偏移后按规则1绘制直线;指令的格式为X offsetY。表示在横坐标X…...

【JVM】运行时数据区与对象的创建流程

4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域&#xff0c;这块区域就是JVM的内存区域&#xff0c;也称为JVM的内存模型——JMM 堆空间&#xff08;线程共享&#xff09;&#xff1a;存放new出来的对象 元空间&#xff08;线程共…...

flutter- JSON解析框架使用方法json_serializable

对于目前来说&#xff0c;大部分的API网络请求的通讯内容数据格式都是JSON。JSON返回的都是字符串&#xff0c;假如要取到data里面的id&#xff0c;去直接字符串截取肯定是不行的&#xff0c;要通过一定的方式把它解析成Map或者解析成对象&#xff0c;再去处理它。像一些简单的…...

第十三届蓝桥杯国赛 C++ B 组 J 题——搬砖(AC)

目录1.搬砖1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.搬砖 1.题目描述 这天&#xff0c;小明在搬砖。 他一共有 nnn 块砖, 他发现第 iii 砖的重量为 wiw_{i}wi​, 价值为 viv_{i}vi​ 。他突然想从这些 砖中选一些出来从…...

Spring Cloud Nacos源码讲解(十)- Nacos服务端服务发现处理

Nacos集群数据同步 ​ 当我们有服务进行注册以后&#xff0c;会写入注册信息同时会触发ClientChangedEvent事件&#xff0c;通过这个事件&#xff0c;就会开始进行Nacos的集群数据同步&#xff0c;当然这其中只有有一个Nacos节点来处理对应的客户端请求&#xff0c;其实这其中…...

C++ 修改程序进程的优先级(Linux,Windows)

文章目录1、Linux1.1 常用命令1.1.1 不占用终端运行和后台运行方式1.1.2 查询进程1.1.3 结束进程1.1.4 优先级命令1.2 C 代码示例1.2.1 代码一1.2.2 代码二2、Windows2.1 简介2.2 函数声明2.3 C 代码示例2.3.1 代码一2.3.2 代码二结语1、Linux 1.1 常用命令 1.1.1 不占用终端…...