配置 Haproxy 负载均衡群集
配置 haproxy 负载均衡群集
🏆荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。
💻微信公众号:微笑的段嘉许
📌本文由微笑的段嘉许原创!
🎉欢迎关注🔎点赞👍收藏⭐留言📝
📆CSDN首发时间:🌴2023年2月日25🌴
✉️坚持和努力一定能换来诗与远方!
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
⭐本文介绍⭐
本文将要介绍一款比较流行的群集调度工具。首先介绍负载均衡常用调度算法,然后介绍Haproxy搭建web群集的方法。
📌导航小助手📌
文章目录
- 配置 haproxy 负载均衡群集
- 📝理论讲解:
- 负载均衡常用调度算法
- 常见的Web群集调度器
- 📖实验配置与实现:
- 一、Haproxy 服务器和 web 服务器以及客户端配置 IP 地址
- 1、haproxy 配置 IP 地址和路由功能
- 2、第一台 web 服务器配置 IP 地址
- 3、第二台 Web 服务器 IP 地址
- 4、客户端配置 IP 地址
- 二、安装配置两台 Nginx 网站服务器
- 1、配置第一台 web 服务器安装依赖软件和创建管理用户
- 2、配置安装第一台 Web 服务器
- 3、配置第二台 web 服务器安装依赖软件和创建管理用户
- 4、配置安装第二台 Web 服务器
- 三、配置 haproxy 和 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集
- 1、安装配置 haproxy 依赖程序
- 2、配置安装 haproxy
- 3、配置 haproxy 服务支持负载均衡启动服务
- 4、搭建 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集
- 5、客户端访问 haproxy 的网站服务器域名 www.bdqn.com 验证
📝理论讲解:
负载均衡常用调度算法
LVS、Haproxy、Nginx最常用的调度算法有三种,如下所述
- RR(Round Robin)。RR算法是最简单常用的一种算法,即轮询调度。例如,有三个节点 A、B、C,第一个用户访问会被指派到节点 A,第二个用户访问会被指派到节点 B,第三个用户访问会被指派到节点 C,第四个用户访问继续指派到节点 A,轮询分配访问请求实现负载均衡效果。此算法还有一种加权轮询,即根据每个节点的权重轮询分配访问请求。
- LC(Least Connections)。LC算法即最小连接算法,根据后端的节点连接数大小动态分配前端请求,例如,有三个几点 A 、B、C,各节点的连接数变为 A:4、B:5、C:6,此时如果有第一个用户连接请求,会被指派到 A上,连接数变为 A:5、B:5、C:6;第二个用户请求会继续分配到 A上,连接数变为 A:6、B:5、C:6;再有新的请求会分配给 B,每次将新的请求指派给连接数最小的客户端。由于实际情况下 A、B、C 的连接数会动态释放,很难会出现一样连接数的情况,因此此算法相比较RR算法有很大的改进,是目前用到比较多的一种算法。
- SH(Source Hashing)。SH基于来源访问调度算法,此算法用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做群集调度。例如,使用基于源IP的群集调度算法,有三个节点 A、B、C,第一个用户第一次访问被指派到了 A,第二个 用户第一次访问被指派到了 B,实现群集的调度。此调度算法好处是实现会话保持,单某些IP访问量非常大时会引起负载不均衡,部分节点访问量大、影响业务使用。
常见的Web群集调度器
目前常见的Web群集调度器分为软件和硬件,软件通常使用开源的LVS、Haproxy、Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等。
📖实验配置与实现:
拓扑图:

推荐步骤:
➢ Haproxy 服务器和 web 服务器以及客户端配置 IP 地址
➢ 安装配置两台 Nginx 网站服务器
➢ 配置 haproxy 和 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集
实验步骤:
一、Haproxy 服务器和 web 服务器以及客户端配置 IP 地址
1、haproxy 配置 IP 地址和路由功能
1)haproxy 服务器生成外网网卡配置 IP 地址

2)haproxy 服务器配置内网 IP 地址


3)haproxy 服务器外网 IP 地址


4)重新启动网卡服务查看配置的 DNS

5)haproxy 服务器开启路由转发功能



2、第一台 web 服务器配置 IP 地址
1)修改网卡配置文件


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

3、第二台 Web 服务器 IP 地址
1)修改网卡配置文件


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

4、客户端配置 IP 地址
1) 客户端配置 IP 地址

2)查看配置的 IP 地址

二、安装配置两台 Nginx 网站服务器
1、配置第一台 web 服务器安装依赖软件和创建管理用户
1)切换系统光盘安装依赖程序

2)删除系统 yum 仓库配置本地 yum 仓库

3)挂载系统盘

4)安装依赖软件和创建管理 Nginx 用户


2、配置安装第一台 Web 服务器
1)卸载系统光盘挂载程序光盘


2)解压缩配置 Nginx 服务器

3)编译安装 Nginx 服务器

4)优化服务命令

5)设置 Nginx 服务器主页

6) 启动服务器查看运行状态

3、配置第二台 web 服务器安装依赖软件和创建管理用户
1)切换系统光盘安装依赖程序

2)删除系统 yum 仓库配置本地 yum 仓库

3)挂载系统盘

4)安装依赖软件和创建管理 Nginx 用户


4、配置安装第二台 Web 服务器
1)卸载系统光盘挂载程序光盘


2)解压缩配置 Nginx 服务器

3)编译安装 Nginx 服务器

4)优化服务器命令

5)设置 Nginx 服务器主页

6)启动服务器查看运行状态

三、配置 haproxy 和 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集
1、安装配置 haproxy 依赖程序
1)切换系统光盘安装依赖程序

2)删除系统 yum 仓库配置本地 yum 仓库

3)挂载系统盘

4)安装 haproxy 依赖软件

2、配置安装 haproxy
1)切换到程序光盘


2)解压配置源代码程序


3)生成 haproxy 配置文件目录和主配置文件

4)生成服务控制文件添加系统服务设置服务开机自动启动

5)创建服务目录优化命令

3、配置 haproxy 服务支持负载均衡启动服务
1)修改 haproxy 主配置文件


2)启动服务查看服务运行状态

4、搭建 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集
1)切换到系统光盘

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

3)安装 DNS 服务器



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



5)修改 DNS 区域数据库文件



6)启动 DNS 服务设置开机自动启动



5、客户端访问 haproxy 的网站服务器域名 www.bdqn.com 验证
1)第一次访问网站服务器

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

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

相关文章:
配置 Haproxy 负载均衡群集
配置 haproxy 负载均衡群集 🏆荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。 💻微信公众号:微笑的段嘉许 📌本文由微笑的段嘉许原创! &#…...
计算机网络笔记 | 第一章:计算机网络概述(1.1-1.4小节知识点整理)
从专栏将讲述有关于计算机网络相关知识点,如果有想学习Java的小伙伴可以点击下方连接查看专栏,还有JavaEE部分 本专栏地址(持续更新中):🔥计算机网络 MyBatis:✍️MyBatis Java入门篇࿱…...
Flutter3引用原生播放器-Android篇
接上篇:Flutter3引用原生播放器-IOS(Swift)篇 安卓端原生播放器的接入思路与ios基本一致,所以本篇就不废话了,直接上代码: 创建插件VideoViewPlugin实现FlutterPlugin: package io.flutter.plugins.videoplayer;imp…...
SerenityOS 操作系统类 Unix 操作系统
创建于2018年的SerenityOS是一个类似Unix的操作系统,但是带有图形化界面,适合X86台式计算机,,其界面类似90 年代的Win98/NT。几乎由一个人完成额操作系统。这几天其Web浏览器通过了 Acid3 浏览器。 Kernel features 具有抢占式多…...
Bean作用域和生命周期
目录 Bean作用域的例子 作用域定义 Bean的六种作用域 设置作用域 Spring的执行过程和Bean的生命周期 Spring的主要执行流程 Bean的生命周期 在上篇博客中我们使用Spring存储和获取Bean,因此Bean是Spring中最重要的资源,今天这篇博客就深入了解Bean对象 Bean作用域的例子 …...
STM32笔记
目录 1.1. 预备阶段 1.2. 单片机介绍 2. 初识STM32 2.1. STM32 1.1. 预备阶段 1.2. 单片机介绍 1.2.1. 单片机是什么 单片微型计算机(Single Chip Microcomputer)简称为单片机(Microcontrollers),也称为微控制单元(Microcontroller Uni…...
【论文阅读】基于LevelDB的分布式数据库研究
基于LevelDB的分布式数据库研究 基于LevelDB的分布式数据库的研究与实现 - 中国知网 (cnki.net) 实现了什么? 基于键值型NoSQL数据库LevelDB,并与数据一致性算法Raft、 数据分片和负载均衡相结合,设计并实现基于LevelDB的分布式数据库。 主要…...
JavaScript高级 Iterator Generator
1. Iterator 1. JavaScript迭代器协议 在JavaScript中,迭代器也是一个具体的对象,这个对象需要符合迭代器协议(iterator protocol): ◼ 迭代器协议定义了产生一系列值(无论是有限还是无限个)…...
数字IC手撕代码--乐鑫科技(次小值与次小值出现的次数)
前言:本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析、代码及波形,所有代码均经过本人验证。目录如下:1.数字IC手撕代码-分频器(任意偶数分频)2.数字IC手撕代…...
JavaScript DOM和BOM
目录 查找html元素 1.通过id 2.通过标签名 3.通过类名 DOM 1.创建动态的HTML内容 2.修改元素内容 3.改变HTML属性 4.改变css样式 DOM事件 DOM节点 1.添加HTML元素 2.删除HTML元素 浏览器对象 1.Window对象 2.Screen对象 3.History对象 4.Location对象 5.Navi…...
JUC并发编程(二)
一、过时方法 一些不推荐使用的方法已经过时,容易破坏同步代码块,使对象的锁得不到释放,进而造成线程死锁 二、守护线程 默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程…...
Python控制CANoe使能TestCase
前面介绍了多种CANoe配置下的dbc文件添加,常见的配置我们能够常用的就是testcase的使能和环境变量的设置,针对于环境变量的问题,我们下次再进行详聊,今天主要聊一下测试脚本的使能。在做这块之前,我们第一步就需要了解我们的测试脚本的层级是都包含有哪些? 一、测试脚本结…...
sql的执行顺序
一.前言 在我们世家开发中,我们少不了和数据库打交道, 我们的持久层是与数据库打交道的, 少不了要用sql语句来请求数据库的数据, 前台(前端页面)请求到-->控制器(接口层)-->service(业务层)-->mapper或dao(持久层) 简图: 在持久层我们的sql是怎么执行的, 它的执行顺…...
java 8 中的实用技巧
1 判断2个对象是否相等Objects.equals(a, b)(1) 比较时, 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是null, 则返回false。注意:不会抛出空指针异常。(2) a 和 b 如果都是空值字符串:"", 则 a.equals(b…...
自学大数据的第一天
默认跳过基础部分,直接搞集群的部分,期间用到的linux基础默认大伙都会了(不会的话可以现用现查) Hadoop集群搭建 集群特点: 1,逻辑上分离~集群之间没有依赖,互不影响 2,某些进程往往部署在一台服务器上,但是属于不同的集群 3,MapReduce 是计算框架,代码层面的处理逻辑 集群的…...
redis秒杀
redis优惠券秒杀 为什么订单表订单ID不采用自增长? id规律性太明显,容易被用户猜测到(比如第一天下订单id10,第二天下订单id100,在昨天的1天内只卖出90商品)受单表数据量限制(订单数据量大&am…...
JS学习第3天——Web APIs之DOM(什么是DOM,相关API【创建、增删改查、属性操作、事件操作API】)
目录一、Web APIs介绍1、API2、Web API二、DOM1、DOM树2、获取元素3、事件基础4、操作元素属性5、节点(node)操作三、DOM操作总结(创建、增删改查、属性操作、事件操作API)1、创建2、增3、删4、改5、查6、属性操作7、事件操作四、…...
【MySQL】增删改操作(基础篇)
目录 1、新增操作(Create) 1.1 单行数据 全列插入 1.2 多行数据 全列插入 1.3 单行数据 指定列插入 2、修改操作(Update) 3、删除操作(Delete) 1、新增操作(Create) 如何给一张表新增数据呢? 新增(Create),在我们数据库中,用 ins…...
STM32—DMA
什么是DMA? DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来…...
C语言刷题(3)——“C”
各位CSDN的uu们你们好呀,今天小雅兰的内容还是做几道题噢,好好复习一下之前的知识点,现在,就让我们开始复习吧 牛客网在线编程_编程学习|练习题_数据结构|系统设计题库 倒置字符串_牛客题霸_牛客网 BC40 竞选社长 BC41 你是天才…...
3分钟从想法到3D模型:Hunyuan3D-2如何帮你实现创作自由
3分钟从想法到3D模型:Hunyuan3D-2如何帮你实现创作自由 【免费下载链接】Hunyuan3D-2 High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models. 项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 想象一下&#x…...
Linux下Conda+R+RStudio环境配置全攻略:从零搭建高效数据分析平台
1. 为什么选择Conda管理R环境? 很多数据分析师习惯直接在系统里安装R和R包,但很快就会遇到版本冲突的麻烦。比如你需要安装一个要求R 4.3.0的包,但系统里装的是R 4.2.0,更糟的是其他所有包都是基于4.2.0编译的。这时候conda的价值…...
TouchGal Galgame社区完整指南:打造你的二次元游戏乐园
TouchGal Galgame社区完整指南:打造你的二次元游戏乐园 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchGal是一个专…...
Spring AI MCP实战避坑指南:从部署到调试的常见问题解析
1. Spring AI MCP部署前的环境准备 第一次接触Spring AI MCP时,我像大多数开发者一样直接跳过了环境检查环节,结果在后续部署过程中踩了不少坑。这里分享几个必须提前确认的关键点: 操作系统兼容性是首要考虑因素。虽然Spring AI MCP理论上支…...
程序员成长之路:从技术热爱到工程艺术
1. 程序人生:从技术热爱到工程艺术1.1 技术启蒙与早期实践1987年进入武汉大学计算机系标志着一段技术人生的开始。最初接触的是Motorola 68000处理器系统,配置540KB内存,运行UNIX操作系统。这种八人共享的计算环境成为编程技术的第一课堂。大…...
Driver Store Explorer:Windows驱动管理的终极解决方案
Driver Store Explorer:Windows驱动管理的终极解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer(简称RAPR)是一…...
基于Matlab的齿轮动力学仿真探索
基于matlab的齿轮动力学仿真。 该模型考虑动态啮合角和动态间隙非线性的影响,将扭矩直接作用于齿轮,并定义已知的系统参数:齿数、模数、转动惯量、压力角、转速等,输出齿轮X、Y方向的时变位移及FFT结果,综合变形时域图…...
避坑指南:TDengine开源版taosdump备份恢复,这些性能问题和‘缺口’你得知道
TDengine开源版备份恢复实战:taosdump性能瓶颈与数据缺口深度解析 1. 当开源版遇上生产环境:taosdump的真实表现 去年夏天,我们团队在新能源监控项目中首次尝试用TDengine开源版构建时序数据库集群。当系统运行三个月后,客户突然…...
老设备重生:老旧MacBook Pro系统升级完全指南
老设备重生:老旧MacBook Pro系统升级完全指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧硬件适配是延长设备生命周期的关键挑战,而开源解…...
深入RISC-V调试模块:从硬件设计视角看DM、DTM与抽象命令的实现
RISC-V调试模块硬件架构深度解析:从状态机到抽象命令的工程实现 1. RISC-V调试系统的硬件架构全景 在RISC-V生态系统中,调试模块(Debug Module, DM)作为连接外部调试器与处理器核心的关键枢纽,其硬件设计直接决定了芯片的可调试性。与传统的…...
