haproxy安装和使用

  • 版本1.5.19
  • 有一个双机负载均衡的需求,要求机器故障后自动将流量打到未故障机器上,故障恢复后,自动双机分流。这就涉及主动健康检查的概念,前置机需要主动监测代理机器的状态,决定流量走哪条通路。一开始使用nginx,发现原生不支持主动状态检测,试了下第三方插件,发现不能使用tcp代理,调研了下,发现haproxy可以满足我的需求。
    配置文件
cfg 复制代码
# 全局配置
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats
# 默认配置
defaults
    log         global                # 继承全局日志配置
    mode        tcp                   # 启用TCP模式(四层代理)
    retries     3                     # 连接失败重试次数
    timeout     connect 5s            # 与后端服务器建立连接的超时时间
    timeout     client 60s            # 客户端连接超时时间
    timeout     server 60s            # 后端服务器响应超时时间
    option      tcplog                # 记录TCP详细日志
    option      log-health-checks     # 记录健康检查日志

# TCP前端配置(接收客户端请求)
frontend tcp_front
    bind        *:8080               # 监听12345端口(可自定义)
    default_backend tcp_back          # 默认转发到后端服务器组

# 后端服务器组配置(含主动健康检测)
backend tcp_back
    balance     roundrobin                # 负载均衡策略
    
    # 主动健康检测配置(TCP协议专用)
    option      tcp-check             # 启用TCP协议检测
    tcp-check   connect               # 检测方式:尝试建立TCP连接
    
    # 后端服务器1配置
    server      server1 17.0.32.199:8081 check inter 3s rise 2 fall 3 weight 1                     # 权重1(权重越高分配到的请求越多)
    # 后端服务器2配置
    server      server2 17.0.32.199:8082 check inter 3s rise 2 fall 3 weight 1 

# 健康状态监控页面(可选)
listen stats
    bind        *:8089                # 监控页面端口
    mode        http                  # HTTP模式
    stats       enable                # 启用统计功能
    stats       uri /haproxy-stats    # 访问路径:http://IP:8080/haproxy-stats
    stats       auth admin:123456     # 登录账号密码(admin/123456)
    stats       refresh 5s            # 页面自动刷新间隔5秒
    stats       realm HAProxy\ Statistics  # 认证提示信息

安装

shell 复制代码
tar -xzvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1
make install PREFIX=/usr/local/haproxy
mkdir -p /etc/haproxy
# 写配置文件/etc/haproxy/haproxy.cfg
useradd -r haproxy
mkdir -p /var/lib/haproxy /run/haproxy

启动

shell 复制代码
cd /usr/local/haproxy
sbin/haproxy -f /etc/haproxy/haproxy.cfg
相关推荐
骑着蜗牛撵大象3274 天前
服务下线不再炸:分层关闭、TCP 存活探测与负载均衡排水的落地套路
android·tcp/ip·负载均衡·tcp·高可用·健康检查·优雅关闭
螺蛳粉 螺蛳粉5 天前
第五篇:Keepalived + LVS 四层负载均衡高可用实战:DR 模式全流程
运维·负载均衡·lvs·keepalived·高可用
积流成海6 天前
一致性哈希原理与实现:分布式系统负载均衡
算法·负载均衡·哈希算法·哈希函数·盘子工具站
一条大祥脚8 天前
【CS336】lecture4 MoE|负载均衡|MoE并行|训练稳定性|Deepseek回顾
运维·负载均衡
IanSkunk8 天前
从检查设备到训练方案:眼科与视光中心设备联动的数据通路、字段口径与校验规则
服务器·数据库·负载均衡
螺蛳粉 螺蛳粉9 天前
第二篇:keepalived VRRP 原理篇:协议与 VIP 漂移机制深入解析
网络·智能路由器·负载均衡·keepalived·高可用
螺蛳粉 螺蛳粉9 天前
第一篇:Keepalived 高可用实战:VIP 漂移与 Nginx 主备切换完整指南
运维·nginx·负载均衡·keepalived·高可用
吴声子夜歌10 天前
Nginx应用与运维——Nginx负载均衡应用实战(二)
运维·nginx·负载均衡
Wang's Blog10 天前
Java 项目实战: 外卖平台优化-Nginx六种负载均衡策略对比与选型
java·nginx·负载均衡
Thomas.Sir11 天前
第13课:Spring Cloud LoadBalancer 新版负载均衡核心原理
spring cloud·负载均衡