haproxy负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy负载均衡相关的知识,希望对你有一定的参考价值。

环境:

Ha主机:192.168.10.33

backend主机1:192.168.10.35

backend主机2:192.168.10.38

客户端:192.168.10.184


一.调度方式:

  1. roundrobin:轮询调度

  2. static-rr:静态轮询,当更改权重或者其他配置,必须要重新加载服务才能生效

  3. leastconn:最少连接调度。

  4. source:基于IP的hash调度。对于同一个源端将会调度到同一台后端服务器

  5. uri:基于URL的HASH调度。对于同一个URL将会调度到同一台后端服务器

  6. url_param:基于URL中的参数进行hash调度。

  7. hdr_param:基于header中的参数进行hash调度。


二.配置:/etc/haproxy/haproxy.cfg

global #全局定义

 log 127.0.0.1 local0  #日志输出位置

 chroot /usr/local/haproxy #定义chroot目录,有助于安全

 daemon #指定为守护进程

 maxconn 4096 #定义单进程最大连接数

 nbproc 2 #定义haproxy进程数<=设备的总核数

 pidfile /usr/local/haproxy/run/haproxy.pid#定义pid文件,一般可缺省

 

defaults #定义默认配置

     log global #引用全局定义的日志

     mode http #定义使用http模式

     option abortonclose #丢弃由于客户端等待时间过长而关闭连接但仍在haproxy等待队列中的请求

     option forwardfor #是否记录x-for地址,用于记录实际的客户端IP

     option httplog #定义记录HTTP日志

     retry 3 #当3次连接失败判定服务器不可用

     option redispatch #当后端某台设备不可用时,将原本调度到该(故障)设备的请求强制重定向到其他正常设备

     timeout http request 2000 #在客户端建立连接但不请求数据时,关闭客户端连接

     timeout queue 5000#等待最大时长

     timeout connect 3000 #定义haproxy将请求转发到后端服务器所等待的超时时间

     timeout client 5000 #客户端非活动状态的超时时长

frontend web                #前端定义

        bind *:80 #监听端口

        option httpclose

        default_backend webgroup #前端的请求默认调度到后端的webgroup组

backend webgroup   #后端定义

        balance uri #uri调度

        option httpchk HEAD  / HTTP/1.1 \r\nHost:www.baidu.com  #HEAD检测 

        server servername_one 192.168.10.35:80 weight 1 check inter 5000 rise 3 fall 1     

        server servername_two 192.168.10.38:80 weight 1 check inter 5000 rise 3 fall 1 

#inter 5000 //间隔5000毫秒检测一次

#rise 3 //Ha对处于故障的设备重新成功检测3次后才会将服务器置为可用

#fall 1 //Ha对后端的设备探测只要失败1次立马置为不可用


listen admin_stats #listen是frontend、backend的结合,本处用于设定管理界面

    bind *:10086

    stats enable #开启haproxy统计状态

    stats hide-version #隐藏版本信息

    stats refresh 3 #定义页面刷新时间(秒)

    stats uri /admin #定义平台地址

    stats realm welcome to haproxy admin #定义提示信息

    stats auth admin:admin #定义用户信息

    stats admin TRUE #当用户信息正常时启用stats


三.测试

(1).检测Ha对后端服务器的check。

 技术分享

(2).检测资源调度

<1>.客户端做HOST绑定相应域名到HA地址,并在浏览器访问域名

技术分享

<2>.检测后端服务器是否接收到请求

技术分享

技术分享

以上是关于haproxy负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

初识千万级高并发负载均衡软件HaProxy

负载均衡——LVS,HAProxy和Nginx对比分析

千万级高并发负载均衡软件HAproxy

HAproxy七层负载均衡四层/七层负载均衡

Haproxy 负载均衡算法介绍:

haproxy 负载均衡算法介绍: