负载均衡集群——HAProxy

目录

[1 HAProxy介绍](#1 HAProxy介绍)

[2 功能简介](#2 功能简介)

[3 实验组网介绍](#3 实验组网介绍)

[4 实验步骤](#4 实验步骤)

[4.1 通过 HAProxy 实现简单负载均衡调度功能](#4.1 通过 HAProxy 实现简单负载均衡调度功能)

[步骤 1 安装 HAProxy](#步骤 1 安装 HAProxy)

[步骤 2 修改配置 HAProxy 文件](#步骤 2 修改配置 HAProxy 文件)

[4.2 HAProxy 监控页面配置](#4.2 HAProxy 监控页面配置)

[步骤 1 修改 HAProxy 配置文件](#步骤 1 修改 HAProxy 配置文件)

[步骤 2 查看监控页面](#步骤 2 查看监控页面)

[3.3 HAProxy 日志相关配置](#3.3 HAProxy 日志相关配置)

[步骤 1 修改 HAProxy 配置](#步骤 1 修改 HAProxy 配置)

[步骤 2 修改 rsyslog 配置信息](#步骤 2 修改 rsyslog 配置信息)

[步骤 3 测试](#步骤 3 测试)

[步骤 4 恢复 Nginx2 配置](#步骤 4 恢复 Nginx2 配置)


1 HAProxy****介绍

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

2****功能简介

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

不具备的功能:

正向代理--squid,nginx
缓存代理 --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 上防火墙服务,使业务恢复。

相关推荐
b***25112 分钟前
储能电池组的生产流程|深圳比斯特自动化
运维·自动化
实心儿儿7 分钟前
Linux系统 —— 基础命令1
linux·运维·服务器
FreeBuf_1 小时前
SesameOp 恶意软件滥用 OpenAI Assistants API 实现与 C2 服务器的隐蔽通信
运维·服务器·网络
噜啦噜啦嘞好1 小时前
Linux进程信号
linux·运维·服务器
REDcker2 小时前
Linux 进程资源占用分析指南
linux·运维·chrome
samroom2 小时前
Linux系统管理与常用命令详解
linux·运维·服务器
PKNLP2 小时前
07.docker介绍与常用命令
运维·docker·容器
Mxsoft6193 小时前
电力系统AR远程运维与数字孪生交互技术
运维·ar
一叶之秋14123 小时前
Linux基本指令
linux·运维·服务器
亚林瓜子3 小时前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2