配置 Haproxy 负载均衡群集

news2024/11/27 10:28:02

配置 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,也有很多人使用国内的一些产品,如梭子鱼、绿盟等。


📖实验配置与实现:

拓扑图

img

推荐步骤

➢ Haproxy 服务器和 web 服务器以及客户端配置 IP 地址

➢ 安装配置两台 Nginx 网站服务器

➢ 配置 haproxy 和 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集

实验步骤

一、Haproxy 服务器和 web 服务器以及客户端配置 IP 地址

1、haproxy 配置 IP 地址和路由功能

1)haproxy 服务器生成外网网卡配置 IP 地址

img

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

img

img

3)haproxy 服务器外网 IP 地址

img

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

img

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

img

img

img

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

1)修改网卡配置文件

img

img

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

img

3、第二台 Web 服务器 IP 地址

1)修改网卡配置文件

img

img

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

img

4、客户端配置 IP 地址

1) 客户端配置 IP 地址

img

2)查看配置的 IP 地址

img

二、安装配置两台 Nginx 网站服务器

1、配置第一台 web 服务器安装依赖软件和创建管理用户

1)切换系统光盘安装依赖程序

img

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

img

3)挂载系统盘

img

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

img

img

2、配置安装第一台 Web 服务器

1)卸载系统光盘挂载程序光盘

img

img

2)解压缩配置 Nginx 服务器

img

3)编译安装 Nginx 服务器

img

4)优化服务命令

img

5)设置 Nginx 服务器主页

img

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

img

3、配置第二台 web 服务器安装依赖软件和创建管理用户

1)切换系统光盘安装依赖程序

img

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

img

3)挂载系统盘

img

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

img

img

4、配置安装第二台 Web 服务器

1)卸载系统光盘挂载程序光盘

img

img

2)解压缩配置 Nginx 服务器

img

3)编译安装 Nginx 服务器

img

4)优化服务器命令

img

5)设置 Nginx 服务器主页

img

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

img

三、配置 haproxy 和 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集

1、安装配置 haproxy 依赖程序

1)切换系统光盘安装依赖程序

img

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

img

3)挂载系统盘

img

4)安装 haproxy 依赖软件

img

2、配置安装 haproxy

1)切换到程序光盘

img

img

2)解压配置源代码程序

img

img

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

img

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

img

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

img

3、配置 haproxy 服务支持负载均衡启动服务

1)修改 haproxy 主配置文件

img

img

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

img

4、搭建 DNS 服务器使用域名 www.bdqn.com 访问负载均衡群集

1)切换到系统光盘

img

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

img

3)安装 DNS 服务器

img

img

img

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

img

img

img

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

img

img

img

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

img

img

img

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

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

img

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

img


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

img

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

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

相关文章

Android 基础知识4-3.3 Button(按钮)与ImageButton(图像按钮)详解

一、引言 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外…

MySQL进阶之锁

锁是计算机中协调多个进程或线程并发访问资源的一种机制。在数据库中,除了传统的计算资源竞争之外,数据也是一种提供给许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决堆的一个问题,锁冲突也是影响数据…

Neo4j列表函数

使用列表 标量列表函数 size() 函数返回列表中的元素的数量 MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WITH p, collect (m.title) AS MovieTitles WITH p, MovieTitles, size(MovieTitles) AS NumMovies WHERE NumMovies > 20 RETURN p.name AS Actor, NumMovies, Movie…

浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)

有一个B站号李桥桉,很多年前讲过PTA里的一些题目的解法。近两年有好多同学反馈,需要读者码才能进行答题,不然只能免费注册、看题、编写代码,就是不能提交代码(大受震撼)。 咱就是说,会不会是同学们找错页面了&#xff…

【数据库】第十二章 数据库管理

第12章 数据库管理 数据库的物理存储 关于内存、外存、磁盘、硬盘、软盘、光盘的区别_Allenzyg的博客-CSDN博客_磁盘和硬盘的区别 数据库记录在磁盘上的存储 定长,变长跨块,非跨快 文件的组织方方法: 无序记录文件(堆文件heap或pile file…

eddsa 算法

信息安全课程设计:eddsa 算法 一、项目要求 使用 C 语言开发;可以实现公私钥生成、签名、认证;只需要手动输入明文,代码会自动生成公私钥、签名、认证;记录公私钥生成、签名、认证的时间;在 VS 上运行&am…

React useCallback如何使其性能最大化?

前言 React中最让人畅谈的就是其带来的灵活性,可以说写起来非常的舒服。但是也就是它的灵活性太强,往往让我们忽略了很多细节的地方,而就是这些细节的东西能进行优化,减小我们的性能开销。可以说刚学React和工作几年后写React的代…

JVM内存结构之堆(重要)

1、概述每个JVM进程有且只有一个堆,进程内的所有线程共享这块区域,堆区在JVM启动的时候即被创建,其空间大小也就确定了,是JVM内存结构中最大的一块区域。由于线程共享,堆也就成了JVM内存管理的核心区域。《Java虚拟机规…

热爱所有热爱

想成为这样的一个人,在工作中是一名充满极客精神的Programmer,处理遇到的问题能够游刃有余,能够做出优雅的设计,写出一手优秀的代码,还有着充分的学习能力和业务能力,做一名职场中的佼佼者。 在工作之余还能…

15、条件概率、全概率公式、贝叶斯公式、马尔科夫链

条件概率定义:设A、B是两个事件,且,P(A) > 0 则称 为事件A发生的条件下事件B的条件概率对这个式子进行变形,即可得到概率的乘法公式:P(A) > 0 时,则P(B) > 0 时,则乍一看,…

数字化转型导师坚鹏:BLM农商行数字化转型实战解决方案及案例

BLM农商行数字化转型实战解决方案及案例研究 ——以BLM模型为核心,践行知行合一思想,实现知行果合一 课程背景: 很多农商行存在以下问题: 不知道如何开展数字化转型工作? 不清楚农商行数字化转型方法论? …

Python—单分支结构

&#xff08;1&#xff09;if分支语句 Python中if语句的语法结构&#xff1a; if <条件表达式>&#xff1a;    满足条件运行的代码1    满足条件运行的代码2 代码示例&#xff1a; age 12 if age > 18:print(去上网)if 1 1 2 and :print(我满足条件了)if 1 …

【C++】C++入门(下)

引用 什么是引用&#xff1f;   引用是给一个已经存在的变量取一个别名&#xff0c;在语法上并不会给这个别名开一个空间&#xff0c;它和她引用的变量共用一个空间。但是实际上引用也是开了一块空间的&#xff0c;用来存放引用名。引用是按照指针的方式来实现的。引用语法&…

电子技术——B类输出阶

电子技术——B类输出阶 下图展示了一个B类输出阶的原理图&#xff0c;B类输出阶由两个互补的BJT组成&#xff0c;不同时导通。 原理 当输入电压 vI0v_I 0vI​0 的时候&#xff0c;两个晶体管都截止输出电压为零。当 vIv_IvI​ 上升至超过0.5V的时候&#xff0c;此时 QNQ_NQN…

MVVM 架构进阶:MVI 架构详解

前言Android开发发展到今天已经相当成熟了&#xff0c;各种架构大家也都耳熟能详&#xff0c;如MVC,MVP,MVVM等&#xff0c;其中MVVM更是被官方推荐&#xff0c;成为Android开发中的显学。不过软件开发中没有银弹&#xff0c;MVVM架构也不是尽善尽美的&#xff0c;在使用过程中…

【软件测试】从功能到自动化测试,测试人的进阶之路细节,这些必不可少......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试流程&#xff0…

SQL语法2

SQL语法视图view常用函数三张重要的表接SQL语法第一篇文章&#xff0c;接下来所有的操作都基于safe这张表进行。视图view 语法&#xff1a;create view 视图名称 as select 原表中的列名 from 原表名&#xff1b; 删除视图&#xff1a; 语法&#xff1a;drop view 视图名&…

【Python】Numpy数组的切片、索引详解:取数组的特定行列

【Python】Numpy数组的切片、索引详解&#xff1a;取数组的特定行列 文章目录【Python】Numpy数组的切片、索引详解&#xff1a;取数组的特定行列1. 介绍2. 切片索引2.1 切片索引先验知识2.1 一维数组的切片索引2.3 多维数组的切片索引3. 数组索引&#xff08;副本&#xff09;…

Linux解压压缩

打包tar首先我们得提一下专门用于打包文件的命令——tartar用于备份文件&#xff0c;打包多个文件或者目录&#xff0c;也可以用于还原被打包的文件假设打包目录test下的文件 tar -cvf test.tar ./test 假设打包目录test下的文件,并用gzip命令将包压缩 tar -zcvf test.tar ./te…

华为OD机试题,用 Java 解【蛇形矩阵】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…