负载均衡集群——HAProxy

news2025/1/23 7:13:55

目录

1 HAProxy介绍

2 功能简介

3 实验组网介绍

4 实验步骤

4.1 通过 HAProxy 实现简单负载均衡调度功能

步骤 1 安装 HAProxy

步骤 2 修改配置 HAProxy 文件

4.2 HAProxy 监控页面配置

步骤 1 修改 HAProxy 配置文件

步骤 2 查看监控页面

3.3 HAProxy 日志相关配置

步骤 1 修改 HAProxy 配置

步骤 2 修改 rsyslog 配置信息

步骤 3 测试

步骤 4 恢复 Nginx2 配置


HAProxy介绍

        HAProxy是法国开发者 威利塔罗 (Willy Tarreau) 2000 年使用 C 语言开发的一个开源软件,是一款具备高并发( 一万以上 ) 、高性能的 TCP HTTP 负载均衡器,支持基于 cookie 的持久性,自动故障切换,支持正则表达式及web 状态统计,目前最新 TLS 版本为 2.0

功能简介

负载均衡是 HAProxy 基本功能之一
HAProxy 支持四层和七层的负载均衡
HAProxy 基于事件驱动的链接处理模式和单进程处理模式,使其性能更优
HAProxy 支持 ACL 功能
HAProxy 支持图形化监控
HAProxy 支持不少于 10 种的调度算法
TCP HTTP 反向代理
SSL/TSL 服务器
可以针对 HTTP 请求添加 cookie ,进行路由后端服务器
可平衡负载至后端服务器,并支持持久连接
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持停止接受新连接请求,而不影响现有连接
可以在双向添加,修改或删除 HTTP 报文首部
响应报文压缩
支持基于 pattern 实现连接请求的访问控制
通过特定的 URI 为授权用户提供详细的状态信息

 不具备的功能:

正向代理--squidnginx

缓存代理 --varnish
web 服务 --nginx tengine apache php tomcat
UDP-- 目前不支持 UDP 协议
单机性能 -- 相比 LVS 性能较差

3 实验组网介绍

        本实验共使用四台虚拟机,其中一台配置为 HAProxy 服务器,两台用于 Nginx 服务器的搭建,剩余一台模拟客户端。其中 Nginx 服务器可以和上一实验复用,并保留上个实验完成后的状态,每台服务器中运行了三个虚拟机主机。HAProxy 使用两块网卡,分别于连接内网和外网:

4 实验步骤

4.1 通过 HAProxy 实现简单负载均衡调度功能

步骤 1 安装 HAProxy

在 HAProxy 对应虚拟机上使用以下命令安装 HAProxy:

[root@HAProxy ~]# yum install -y haproxy

步骤 2 修改配置 HAProxy 文件

HAProxy 配置文件为/etc/haproxy/haproxy.cfg,在修改前建议先备份。

 [root@HAProxy ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

 本实验实现 HAProxy 最基础的负载均衡,因此仅需修改 backend 部分即可,具体如下:

[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfg

 

配置完成后,使用命令 “systemctl restart haproxy” 重启 HAProxy 服务,重启后,在客户端访问 HAProxy ,如果配置正确,访问结果如下图所示:

 

4.2 HAProxy 监控页面配置

步骤 1 修改 HAProxy 配置文件

 HAProxy 配置文件中使用 listen 模块配置监控页面,具体为:

[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfg
listen admin_stats
stats enable
bind *:8080 # 监听的 ip 端口号
mode http # 开关
option httplog
log global
maxconn 10
stats refresh 30s # 统计页面自动刷新时间
stats uri /admin # 访问的 uri ip:8080/admin
stats realm haproxy
stats auth admin:admin # 认证用户名和密码
stats hide-version # 隐藏 HAProxy 的版本号
stats admin if TRUE # 管理界面,如果认证成功了,可通过 webui 管理节点

步骤 2 查看监控页面

配置完成后,重启 HAProxy 服务,然后在 PC 上使用浏览器登录页面 http://IP:8443/haproxy_stats,在弹出的窗口中输入用户密码即可登录监控页面,具体如下:

 

3.3 HAProxy 日志相关配置

步骤 1 修改 HAProxy 配置

HAProxy 的日志可以在 global 模块中定义,也可以在 default 或 frontend 中定义,本实验采用 global 中的定义的方式实现,在 HAProxy 配置文件中添加关于日志的配置信息,具体如下:

[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfg

步骤 2 修改 rsyslog 配置信息

在/etc/rsyslog.conf 的末尾增加以下配置内容:

 

步骤 3 测试

配置完成步骤 1 和步骤 2 后,重启 HAProxy 服务和 rsyslog 服务,重启完成后,系统会自动创建指定的日志文件,如下图所示:

Nginx2 上开启防火墙

 [root@Nginx2 ~]# systemctl start firewalld

 查看是否产生对应的日志内容,具体如下图所示:

 

步骤 4 恢复 Nginx2 配置

关闭 Nginx2 上防火墙服务,使业务恢复。 

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

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

相关文章

超详细!Python中 pip 常用命令

相信对于大多数熟悉Python的人来说,一定都听说并且使用过pip这个工具,但是对它的了解可能还不一定是非常的透彻,今天小编就来为大家介绍10个使用pip的小技巧,相信对大家以后管理和使用Python当中的标准库会有帮助。 安装 当然在…

论文解读:FREE LUNCH FOR FEW-SHOT LEARNING: DISTRIBUTION CALIBRATION

文章汇总 问题 学习到的模型很容易因为只有少数训练样本形成的有偏分布而变得过拟合。 动机 我们假设特征表示中的每个维度都遵循高斯分布,因此分布的均值和方差可以借鉴类似类的均值和方差,这些类的统计量可以通过足够数量的样本得到更好的估计。 …

PHP反序列化命令执行+PHP反序列化POP大链 +PHP反序列化基础

[题目信息]: 题目名称题目难度PHP反序列化命令执行1 [题目考点]: 反序列化命令执行,获取题目flag。[Flag格式]: SangFor{t5euvZ_OB8Jd_h2-}[环境部署]: docker-compose.yml文件或者docker tar原始文件。 docker-compose up …

ArcGIS三维景观分层显示

今天将向大家介绍的事在ArcGIS中如何创建多层三维显示。 地表为影像的 地表为地形晕渲的 在土壤分层、油气分层等都有着十分重要的应用。下面我们具体来看看实现过程 一、 准备数据及提取栅格范围 我们这次准备的数据是之前GIS100例-30讲的案例数据。《ArcGIS三维影像图剖面图…

【网站项目】学习资料销售平台 小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

用c++写一个代码解析器需要向哪方面学习?

我以前在中小游戏公司工作的时候,其中一项比较琐碎的工作就是为游戏项目建库建表,主要是为了做数据分析。作为一个职能部门的打杂PHP,对游戏业务并没有什么发言权,但是每次建库建表,却是苦不堪言。 同时部门的基础设施…

EPP和EDR是什么,如何提高端点安全性

端点保护平台(EPP)和端点检测和响应(EDR)工具是两种常用于保护端点系统免受威胁的安全产品。EPP 是一种全面的安全解决方案,提供一系列功能来检测和防止对端点设备的威胁。同时,EDR专门用于实时监控、检测和…

CC254X 8051芯片手册介绍

1 8051CPU 8051是一种8位元的单芯片微控制器,属于MCS-51单芯片的一种,由英特尔(Intel)公司于1981年制造。Intel公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,如Atmel、飞利浦、深联华等公…

AI讲师大模型培训老师叶梓:大模型应用的方向探讨

大模型应用的关键方向及其落地案例可以从多个角度进行探讨,结合最新的研究和实际应用案例,我们可以更全面地理解这些技术如何推动社会和经济的发展。 Agent(数字代理): 方向说明:Agent方向的AI技术旨在创建能够独立执行任务、做出…

redis_watchDog机制

文章目录 介绍机制介绍任务开始任务释放 介绍 redis的watchDog机制实现了超时续约的功能,简单来说就是在获取锁成功以后,开启一个定时任务,这个任务每隔一段时间(relaseTime / 3),重置超时时间,避免的因业务阻塞导致锁…

比特币L2项目主网密集上线:新业态背后的挑战与机遇

随着加密货币行业的快速发展,比特币Layer 2(以下简称L2)项目的主网密集上线成为了近期的热点话题。这一潮流不仅是对比特币网络扩展的重要里程碑,也为新的商业模式和生态系统带来了无限可能。然而,随之而来的是各种挑战…

支付宝支付之SpringBoot整合支付宝入门

支付宝支付 对接流程 申请阿里支付官方企业账号配置应用签约产品获取RSAKey(非对称加密)必须获得两个加密串:一个公钥,一个密钥SDK功能开发业务对接支付回调支付组件 核心所需的参数 APPID商家私钥支付宝公钥支付回调地址网关…

实战纪实 | 学工平台平行越权

一.账号密码可爆破(无验证码) 1.学校学工平台用于请假跟每日上报健康信息,登录框如下: 2.经过测试发现这里不存在验证码验证,并且存在初始密码,可以尝试使用默认密码爆破账号: 3.经测试&#x…

【无标题】PHP-parse_str变量覆盖

[题目信息]: 题目名称题目难度PHP-parse_str变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&…

自动化测试Selenium(3)

目录 WebDriver相关API 打印信息 打印title 打印url 浏览器的操作 浏览器最大化 设置浏览器的宽,高 操作浏览器的前进, 后退, 刷新 控制浏览器滚动条 键盘事件 键盘单键用法 键盘组合按键用法 鼠标事件 WebDriver相关API 打印信息 打印title 即打印该网址的标题.…

护网行动 | 蓝队应急响应流程概述

了解蓝队应急响应的流程 应急响应通常是指为了应对各种意外事件发生前所做的准备,以及在意外事件发生后所采取的措施。 网络安全应急响应是指对已经发生或可能发送的安全事件进行监控、分析、协调、处理、保护资产安全。 网络安全应急响应主要是为了让人们对网络安全…

idea2023专业版安装破解+maven配置教程

前言 上一篇文章已经介绍了maven在Win10系统的安装配置教程。基于Win10的maven配置环境,本篇文章将介绍idea2023的安装破解教程及maven在idea2023的配置教程(同时会将maven在idea2023的配置教程内容补充至上一篇文章)。 一、idea2023下载安…

【学习】jemter中如何高效使用正则表达式

在Jemter的世界里,正则表达式无疑是一把锐利的剑,它可以帮助我们轻松地解决许多问题。在Jemter的性能测试过程中,我们常常需要提取响应中的某些数据,以便在后续的请求中使用。这时,正则表达式就派上用场了。通过学习如…

Linux进阶篇:Centos7搭建smb服务

Centos7搭建smb服务 1 smb介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域…

C语言学习笔记之指针(二)

指针基础知识:C语言学习笔记之指针(一)-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析(出自《C陷阱和缺陷》) 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…