keepalived +HAproxy 配置

 https://www.haproxy.org/download/1.8/src/haproxy-1.8.14.tar.gz (下载地址)

编译HAProxy文件:

[root@localhost ~]# tar zcvf  haproxy-1.8.14.tar.gz
[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64 

[root@localhost ~]# cd haproxy-1.6.4
[root@localhost haproxy-1.8.14] # make TARGET=linux2826 PREFIX=/usr/local/haproxy    
[root@localhost haproxy-1.8.14] # make install PREFIX=/usr/local/haproxy

#将haproxy安装到/usr/local/haproxy下

[root@localhost haproxy-1.8.14] # mkdir  /usr/local/haproxy/conf

#haproxy默认不创建配置文件目录,这里是创建haproxy配置文件目录
[root@localhost haproxy-1.8.14] # cp examples/option-http_proxy.cfg  /usr/local/haproxy/conf/haproxy.cfg 

  编写配置文件:cat /usr/local/haproxy/conf/haproxy.cfg

global
        log 127.0.0.1 local0 info
        maxconn 4096
        user nobody
        group nobody
        daemon
        nbproc 1
        pidfile /usr/local/haproxy/logs/haproxy.pid
defaults
        mode http
        retries 3
        timeout connect 10s
        timeout client 20s
        timeout server 30s
        timeout check 5s
frontend www
         bind *:80
         mode   http
         option  httplog
         option  forwardfor
         option  httpclose
         log     global
        #acl host_www           hdr_dom(host)   -i      www.zb.com
        #acl host_img            hdr_dom(host)   -i      img.zb.com
        #use_backend htmpool    if      host_www
        #use_backend imgpool    if      host_img
        default_backend  htmpool
backend htmpool
        mode    http
        option   redispatch
        option   abortonclose
        balance  static-rr
        cookie   SERVERID
        option   httpchk GET /index.jsp
        server  237server 192.168.81.237:8080 cookie server1 weight 6 check inter 2000 rise 2 fall 3
        server  iivey234 192.168.81.234:8080 cookie server2 weight 3 check inter 2000 rise 2 fall 3
backend imgpool
        mode    http
        option   redispatch
        option   abortonclose
        balance  static-rr
        cookie   SERVERID
        option   httpchk GET /index.jsp
        server  host236 192.168.81.236:8080 cookie server1 weight 6 check inter 2000 rise 2 fall 3
listen admin_stats
        bind 0.0.0.0:9188
        mode http
        log 127.0.0.1 local0 err
        stats refresh 30s
        stats uri /haproxy-status
        stats realm welcome login\ Haproxy
        stats auth admin:admin~!@
        stats hide-version
        stats admin if TRUE

启动与测试haproxy的负载均衡功能

1、启动与管理haproxy
启动服务:
# /usr/local/haproxy/sbin/haproxy -f  /usr/local/haproxy/conf/haproxy.cfg
重启服务:
# /usr/local/haproxy /sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg  \
-st `cat /usr/local/haproxy/logs/haproxy.pid`
停止服务:
# killall haproxy

 停止服务脚本:

#!/bin/sh
ps -ef | grep  haproxy | grep -v grep |awk '{print $2}'|xargs kill -s 9     

 

HAProxy负载均衡器算法与使用技巧

1、HAProxy支持的负载均衡算法

(1)、roundrobin,表示简单的轮询,负载均衡基础算法

(2)、static-rr,表示根据权重

(3)、leastconn,表示最少连接者先处理

(4)、source,表示根据请求源IP

(5)、uri,表示根据请求的URI;

(6)、url_param,表示根据请求的URl参数来进行调度

(7)、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

(8)、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

 

2、常用的负载均衡算法

(1)轮询算法:roundrobin   

(2)根据请求源IP算法:source

(3)最少连接者先处理算法:lestconn
 

通过HAProxy的ACL规则实现智能负载均衡

由于HAProxy可以工作在七层模型下, 因此,要实现HAProxy的强大功能,一定要使用强大灵活的ACL规则,通过ACL规则可以实现基于HAProxy的智能负载均衡系统。HAProxy通过ACL规则完成两种主要的功能,分别是:

1)通过设置的ACL规则检查客户端请求是否合法。如果符合ACL规则要求,那么就将放行,反正,如果不符合规则,则直接中断请求。

2)符合ACL规则要求的请求将被提交到后端的backend服务器集群,进而实现基于ACL规则的负载均衡。

HAProxy中的ACL规则经常使用在frontend段中,使用方法如下:

acl  自定义的acl名称  acl方法  -i  [匹配的路径或文件]

其中:

acl:是一个关键字,表示定义ACL规则的开始。后面需要跟上自定义的ACL名称 。

acl方法:这个字段用来定义实现ACL的方法,HAProxy定义了很多ACL方法,经常使用的方法有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等。

-i:表示忽略大小写,后面需要跟上匹配的路径或文件或正则表达式。

与ACL规则一起使用的HAProxy参数还有use_backend,use_backend后面需要跟上一个backend实例名,表示在满足ACL规则后去请求哪个backend实例,与use_backend对应的还有default_backend参数,它表示在没有满足ACL条件的时候默认使用哪个后端backend。

下面列举几个常见的ACL规则例子:

acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn)
acl bbs_policy hdr_dom(host) -i  bbs.z.cn
acl url_policy url_sub -i  buy_sid=
use_backend server_www if www_policy
use_backend server_app if url_policy
use_backend server_bbs if bbs_policy
default_backend server_cache

 

使用HAProxy的Web监控平台

      HAProxy虽然实现了服务的故障转移,但是在主机或者服务出现故障的时候,并不能发出通知告知运维人员,这对于及时性要求很高的业务系统来说,是非常不便的,不过,HAProxy似乎也考虑到了这一点,在新的版本中HAProxy推出了一个基于Web的监控平台,通过这个平台可以查看此集群系统所有后端服务器的运行状态,在后端服务或服务器出现故障时,监控页面会通过不同的颜色来展示故障信息,这在很大程度上解决了后端服务器故障报警的问题,运维人员可通过监控这个页面来第一时间发现节点故障,进而修复故障 

 

keepalived部署方法参考:keepalived + nginx 配置文档  

https://blog.csdn.net/genglei1022/article/details/83352470

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值