使用Haproxy搭建Web群集

06-02 1220阅读

目录

一、 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 服务器

            关闭防火墙

            使用Haproxy搭建Web群集

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

            使用Haproxy搭建Web群集

            使用Haproxy搭建Web群集

            使用Haproxy搭建Web群集

            2. 编译安装 Haproxy

            使用Haproxy搭建Web群集

            3. Haproxy 服务器配置

            (1) 建立 Haproxy 的配置文件

            使用Haproxy搭建Web群集

            以下为初始内容

            使用Haproxy搭建Web群集

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

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

            使用Haproxy搭建Web群集

             4. 测试 Web 群集

            宿主机访问

            使用Haproxy搭建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

            测试

            使用Haproxy搭建Web群集

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码