cl_303303303 发表于 2019-1-1 12:14:32

Haproxy及相关配置案例

  前言
      LB Cluster中可以分为四层调度和七层调度。前面学的LVS、nginx(stream模块)都属于四层调度,七层调度有nginx(http模块)等。HAProxy是一款应对客户端10000以上的同时连接的高性能的TCP和HTTP负载均衡器。就是说四层和七层都可以调度,这就是为什么HAProxy是一款专业的调度器。简单说它的功能是用来提供基于cookie的持久性,基于内容的交换,过载保护的高级流量管制,自动故障切换,以正则表达式为基础的控制运行时间,基于Web的报表,高级日志记录以帮助排除故障的应用或网络及其他功能。
  HAProxy功能
      1、支持TCP / HTTP反向代理服务器,尤其适合于高可用性环境
      2、支持http反向代理
      3、支持动态程序的反向代理
      4、支持基于数据库的反向代理
  HAProxy配置文件结构
     1、global:全局配置段
        进程及安全配置相关的参数
        性能调整相关参数
        Debug参数
      2、proxies:代理配置段
        defaults:为frontend, backend, listen提供默认配置
        frontend:前端,相当于nginx中的server {}
        backend:后端,相当于nginx中的upstream {}
        listen:同时拥有前端和后端,适用于一对一环
  简单的轮询调度
frontend http
      bind 172.18.32.118:80
      default_backend websrvs
backend websrvs
      balance roundrobin
      server srv1 192.168.32.9:80 check
      server srv2 192.168.32.10:80 check  或者一对一的写法也可以,灵活性不高
listen http
    bind :80,:8080
    balance roundrobin
    server srv1 192.168.32.9:80 check   
    server srv2 192.168.32.10:80 check  记录日志:默认配置文件中已经定义了日志记录,但是还需要去日志配置文件中打开通道,并配置。也可以记录在另外的日志服务器中。
]#cat /etc/haproxy/haproxy.cfg
log         127.0.0.1 local2
]#vim /etc/rsyslog.conf
$ModLoad imudp                这两行默认注销的,需打开
$UDPServerRun 514
local2.*                      /var/log/haproxy.log  基于uri的调度和hash环的一致性配置
backend websrvs
      balance uri
      hash-type consistent
      ...  因为HAProxy是应用层的调度,还可以根据http首部来进行调度
backend websrvs
      balance hdr(host)
      ...  定义sorry server,当后端服务器都宕机的情况下使用,注意端口不要冲突

backend websrvs
      server sorryserver 192.168.32.101:8080 backup
      ...  健康状态检查,检测的地址和提供服务的地址分开
  addr:检测时使用的IP地址
port :针对此端口进行检测
inter :检测之间的时间间隔,默认为2000ms
rise :连续多少次检测结果为“成功”才标记服务器为可用;默认为2
fall :连续多少次检测结果为“失败”才标记服务器为不可用;默认为3
backend websrvs
      balance roundrobin
      server srv1 192.168.32.9:80 check weight 1 addr 192.168.32.101 prot 80 inter 3000 rise 3 fall 3
      ...  如果有服务器需要维护,可以设置disabled,标记为不可用,就不会往这个服务器上调度了。
server srv1 192.168.32.9:80 disabled  重定向到另一个地址

server srv1 192.168.32.9:80 redir http://www.baidu.com  基于cookie的的session sticky的调度
backend websrvs
    cookie SRV insert nocache
    server srv1 192.168.32.9:80 weight 2 check cookie srv1
    server srv2 192.168.32.10:80         check cookie srv2
    ...  启用web管理界面
listen admin 192.168.32.101:8080         
      stats enable
页: [1]
查看完整版本: Haproxy及相关配置案例