使用Haproxy搭建Web群集

目录

一、 Haproxy 概述

1. 核心功能

2. 应用场景

3.优势与特点

3. 工作模式与架构

二、 案例实施

1. 搭建 htppd 服务器

2. 编译安装 Haproxy

3. Haproxy 服务器配置

 4. 测试 Web 群集

5. Haproxy日志


一、 Haproxy 概述

HAProxy(High Availability Proxy)是一款开源的高性能负载均衡与反向代理软件,主要用于分布式系统中分发客户端请求到多个后端服务器,以提高系统的可用性、扩展性和性能。它支持四层(TCP)和七层(HTTP/HTTPS)负载均衡,广泛应用于 Web 服务、数据库集群、消息队列等场景。

1. 核心功能

  • 负载均衡:支持轮询、最少连接、IP 哈希、URI 哈希等多种算法,将流量均匀分配到后端节点。
  • 反向代理:接收客户端请求并转发至后端服务器,隐藏服务器真实地址,提供统一访问入口。
  • 健康检查:实时监控后端服务器状态,自动剔除故障节点,恢复后重新加入集群。
  • 会话保持:通过 Cookie、URL 参数或 IP 绑定,确保同一客户端请求始终路由到同一后端节点。
  • 流量管理:支持请求过滤、响应修改、HTTPS 卸载、TCP/UDP 协议处理等高级功能。
  • 高可用性:支持主从热备(如配合 Keepalived),避免单点故障。

2. 应用场景

  • Web 服务集群:分发 HTTP/HTTPS 请求到多台 Web 服务器(如 Nginx、Apache)。
  • 数据库读写分离:将读请求分发到从库,写请求转发到主库。
  • 微服务网关:作为 API 网关,路由请求到不同微服务实例。
  • 流媒体与实时通信:处理 TCP 长连接(如 WebSocket、RTMP)。
  • 缓存集群代理:连接 Redis、Memcached 等缓存服务,提升访问效率。

3.优势与特点

  • 高性能:单节点可处理数百万级并发连接,内存占用低,适合高负载场景。
  • 灵活性:同时支持四层和七层负载均衡,配置灵活,可通过 ACL(访问控制列表)实现复杂路由逻辑。
  • 稳定性:在全球大型网站(如 GitHub、Spotify、Reddit)中久经考验,支持热重启而不中断连接。
  • 轻量级:无需依赖复杂环境,可运行在资源有限的设备上(如嵌入式系统)。
  • 生态丰富:支持与 Prometheus、Grafana 等监控工具集成,提供实时 metrics 数据。

3. 工作模式与架构

工作模式:

  • 四层模式(TCP):基于 IP 和端口转发流量,不解析应用层协议,适合数据库、缓存等 TCP 服务。
  • 七层模式(HTTP):解析 HTTP 请求头,支持 URI、域名、请求方法等维度的路由,适合 Web 服务。

基本架构

  • 前端(Frontend):定义监听的客户端入口,绑定 IP 和端口。
  • 后端(Backend):定义后端服务器集群,配置负载均衡算法和健康检查规则。
  • 会话处理:通过会话表(Session Table)管理客户端连接,实现会话保持。

二、 案例实施

1. 搭建 htppd 服务器

关闭防火墙

两台服务器安装http并准备测试网页

2. 编译安装 Haproxy

3. Haproxy 服务器配置

(1) 建立 Haproxy 的配置文件

以下为初始内容

(2) 修改haproxy.cfg配置文件

根据目前的群集设计,将 haproxy.cfg 配置文件的内容修改如下

 4. 测试 Web 群集

宿主机访问

5. Haproxy日志

修改配置文件

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg
global                                  #全局
    log         127.0.0.1 local2        #日志/日志设备
    log         127.0.0.1 local3	#添加新的日志设备    这个!!!!!
    chroot      /var/lib/haproxy        #限制haproxy运行时的路径
    pidfile     /var/run/haproxy.pid    #pid文件
    user        haproxy                 #haproxy的程序用户
    group       haproxy                 #haproxy的程序组
    daemon                              #守护进程
    maxconn     4000                    #最大连接数

 创建日志路径

vim /etc/rsyslog.d/haproxy.conf	#日志路径
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~

重启生效

systemctl restart haproxy
systemctl restart rsyslog

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值