负载均衡集群——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 上防火墙服务,使业务恢复。

相关推荐
深情废杨杨17 分钟前
服务器几核几G几M是什么意思?如何选择?
运维·服务器
康熙38bdc18 分钟前
Linux 进程优先级
linux·运维·服务器
Web极客码19 分钟前
常见的VPS或者独立服务器的控制面板推荐
运维·服务器·控制面板
只是有点小怂23 分钟前
parted是 Linux 系统中用于管理磁盘分区的命令行工具
linux·运维·服务器
三枪一个麻辣烫1 小时前
linux基础命令
linux·运维·服务器
cuisidong19971 小时前
如何在 Kali Linux 上安装 Google Chrome 浏览器
linux·运维·chrome
wusam2 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器
南种北李2 小时前
Linux自动化构建工具Make/Makefile
linux·运维·自动化
一直在进步的派大星2 小时前
Docker 从安装到实战
java·运维·docker·微服务·容器
哲伦贼稳妥3 小时前
一天认识一个硬件之电源
运维·其他·电脑·硬件工程