HAproxy+keepalived安装配置教程

  

1、四层和七负载均衡的区正则表达式

 

 

所谓层就ISO模型载均是 经过IPTCP/UDP层的的基IP端口见的基于负 载均衡器LVSF5等。redis

以常TCP负载个来户端SYN时,通 过设择一,同目标IP址修端 服IP给该个负程来看一个TCP端和立的而负了一路由 器的载均端服正确负载均衡时可源地程下算法

 

wKiom1ehnlPyTHtVAADAuOS47ms038.jpg-wh_50

 

同理,七层负载均衡器也称为七层交换机,位于 OSI 的最高层,即应用层,此时负载均衡器支持多种应用协议,常见的有 HTTP、FTP、SMTP 等。七层负载均衡器能够根据报文内 容,再配合负载均衡算法来选择后端服务器,所以也称为“内容交换器”。好比,对于 Web 服务器的负载均衡,七层负载均衡器不但能够根据“IP+端口”的方式进行负载分流,还能够根据网站的 URL、访问域名、浏览器类别、语言等决定负载均衡的策略。例如,有两台 Web 服务器分别对应中英文两个网站,两个域名分别是 A、B,要实现访问 A 域名时进入中 文网站,访问 B 域名时进入英文网站,这在四层负载均衡器中几乎是没法实现的,而七层负 载均衡能够根据客户端访问域名的不一样选择对应的网页进行负载均衡处理。常见的七层负载均衡器有 HAproxy、Nginx 等。后端

 

这里常见TCP应用器要获取内容所以只能代替后端到客户端该 报文均衡算法部服务器观 整个,七层器在个代以下浏览器

 

wKioL1ehnlSAiWilAACxrcBzj6o775.jpg-wh_50 

 

对比负载能够看出模式服务器

负载端的TCP链接层负载均下, 仅建立一TCP此可衡对负载层负均 衡的四层cookie

 

 

2、HAProxyLVS的异同网络

 

种负一个结:app

1)二者都是软件负载均衡产品,可是LVS是基于Linux操做系统实现的一种软负载均衡,而HAProxy是基于第三应用实现的软负载均衡。负载均衡


2)LVS是基于四层的IP负载均衡技术,而HAProxy是基于四层和七层技术、可提供TCP和HTTP应用的负载均衡综合解决方案。


3)LVS工做在ISO模型的第四层,所以其状态监测功能单一,而HAProxy在状态监测 方面功能强大,可支持端口、URL、脚本等多种状态检测方式。


4)HAProxy虽然功能强大,可是总体处理性能低于四层模式的LVS负载均衡,而LVS拥有接近硬件设备的网络吞吐和链接负载能力。

 

综上所述,HAProxy和LVS各有优缺点,没有好坏之分,要选择哪一个做为负载均衡器,要以实际的应用环境来决定。


 

 

3、快速安HAProxy集群软件

 

 

HAProxyhttp://www.haproxy.org/HAProxy操做系统Centos6.6 X64载的HAProxyhaproxy-1.6.7.tar.gz如 下:

 

#tar -zxvf haproxy-1.6.7.tar.gz


#cd haproxy-1.6.7


#make TARGET=linux26 PREFIX=/usr/local/haproxy

注:此处TARGET=linux26是填写系统内核版本 ,内核版本怎么看. uname -r 。如个人版本是2.6.32-504.el6.x86_64, 直接填写26便可。


#make install PREFIX=/usr/local/haproxy

  haproxy/usr/local/haproxy


 

#mkdir  /usr/local/haproxy/conf

 haproxy文件haproxy目录


 

# cp examples/option-http_proxy.cfg  /usr/local/haproxy/conf/haproxy.cf

 

#haproxy,默认安件,这里例配件目录

这样HAProxy完成了。

 

 

4、HAProxy基础配置文件详

 

 

HAProxy据功能和5分组是必的, 能够部分置。

1)   global部分 用来属于和操


2)   defaults部分 默认此部认会下面frontend

backendlisten所以公用只需defaults部分添加 一次果在frontendbackendlisten部分中也defaults同样,那么defaults应的盖。

3)   frontend部分

 

此部请求frontendHAProxy1.3版本以后引 入的一个组件,同时引的还有backend组件过引入这些组件,在很程度上简化了 HAProxy杂性frontendACL规则使backend

4)   backend部分 此部服务用来理前

端用实服相似LVSreal server点。

 

5)   listen部分

 

此部frontendbackend合体HAProxy1.3HAProxy的 全部分中性,HAProxy本仍然保listen 组件目前HAProxy方式任选可。

下面HAProxy置文件

 

Global

log127.0.0.1 local0 info

maxconn4096

usernobody

groupnobody

daemon

nbproc 1

pidfile/usr/local/haproxy/logs/haproxy.pid

 

defaults

 

mode http

retries 3

timeoutconnect 10s

timeoutclient 20s

timeoutserver 30s

timeoutcheck 5s

 

frontend www

 

bind *:80

mode    http

 

 

option httplog

option forwardfor

option httpclose

log    global

 

#acl host_wwwhdr_dom(host)   -i  www.zb.com

#acl host_imghdr_dom(host)   -i  img.zb.com

 

#use_backendhtmpool   if  host_www

#use_backendimgpool   if  host_img

default_backend     htmpool

 

backend htmpool

 

mode http

optionredispatch

optionabortonclose

balance    static-rr

cookieSERVERID

optionhttpchk GET /index.jsp

server237server 192.168.81.237:8080 cookie server1weight 6 check inter 2000 rise2 fall 3

serveriivey234 192.168.81.234:8080 cookie server2weight 3 check inter 2000 rise 2 fall 3

 

 

 

 

backend imgpool

mode   http

optionredispatch

optionabortonclose

balance    static-rr

cookieSERVERID

optionhttpchk GET /index.jsp

serverhost236 192.168.81.236:8080 cookie server1 weight 6 check inter 2000rise 2fall 3

 

 

listen admin_stats

bind0.0.0.0:9188

mode http

log127.0.0.1 local0 err

statsrefresh 30s

stats uri/haproxy-status

statsrealm welcome login\ Haproxy

stats authadmin:admin~!@

statshide-version

     statsadmin if TRUE



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


 

1haproxy

 

启动务:

# /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

 

 

 

6、HAProxy    负载均衡器算法使用技

 

 

1HAProxy载均衡算法

1roundrobin单的算法

2static-rr根据权重

3leastconn少连处理

4sourceIP

5uri请求URI

6url_param据请URl进行调度

7hdr(name)HTTP来锁HTTP求;

8rdp-cookie(name)表示根据cookie(name)来锁每一TCP请求。

 

2

 

1roundrobin

2求源IPsource

3法:lestconn

 

7、通HAProxyACL规则实现智能负载均衡

 

 

因为HAProxy七层,因要实HAProxy必定使用强ACLACL基于HAProxy衡系HAProxy 经过ACL要的是:

1)经过设置ACL客户ACL么就将

放行规则求.

 

 

2)符合ACL请求将被backend基于

ACL


 

HAProxyACL常使frontend中,使用下:

 

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

 

其中:

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

 

acl方法:这个字段用来定义实现ACL的方法,HAProxy定义了不少ACL方法,常常使用的方法有hdr_reg(host)hdr_dom(host)hdr_beg(host)url_suburl_dir path_begpath_end等。

 

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

 

ACL规则一块儿使用的HAProxy参数还有use_backenduse_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   

   




 

 


 

8、使用HAProxy的Web监控平台

 

 

      HAProxy虽然实现了服务的故障转移,可是在主机或者服务出现故障的时候,并不能发出通知告知运维人员,这对于及时性要求很高的业务系统来讲,是很是不便的,不过,HAProxy 彷佛也考虑到了这一点,在新的版本中HAProxy推出了一个基于Web的监控平台,经过这 个平台能够查看此集群系统全部后端服务器的运行状态,在后端服务或服务器出现故障时,


       监控页面会经过不一样的颜色来展现故障信息,这在很大程度上解决了后端服务器故障报警的 问题,运维人员可经过监控这个页面来第一时间发现节点故障,进而修复故障。

登陆地址是:http://IP:9188/haproxy-status

用户名和密码:就是在配置文件里设置的 admin、admin~!@

 

 

wKioL1ehoKDT_QBjAAO9NILGG4M882.jpg-wh_50

 

 

9、HAproxy+KeepAlived 高可用负载均衡系统

 

 

1HAproxy统的

 

wKioL1ehnlXhrjlIAAEe3wLigSY374.jpg-wh_50 

在备机从新安haproxy,而后配haproxy,这个再也不介绍,下面直接给出配置好keepalived.conf容。haproxy-serverkeepalived.conf以下

 

global_defs

 {notification_email

{

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

 

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id HAProxy_DEVEL

}

 

vrrp_script check_haproxy {

script "killall -0 haproxy"       

#设置探测 haproxy 服务运行状态的方式,这里的killall -0 haproxy”仅仅是检测 haproxy 服务状态

 

interval 2

}

 

 

vrrp_instance HAProxy_HA {

 

state BACKUP 

# haproxy-server backup-haproxy 上均配置为 BACKUP interface eth0

virtual_router_id 80

priority 100

advert_int 2

nopreempt     #不抢占模式,只在优先级高的机器上设置便可,优先级低的机器不设置 authentication {

auth_type PASS

auth_pass 1111

}

 

 

track_script

 

 {check_haproxy

}

 

virtual_ipaddress {

 

192.168.66.10/24 dev eth0   #HAProxy 的对外服务 IP,即 VIP

}

}


 

最后,keepalived.conf文件复制backup-haproxy服务器上对应的位置,而后keepalived.confpriority值修90,因为配置的是不抢占模式,所以,还需backup-haproxy器上去掉nopreempt项。


完成别在haproxy-serverbackup-haproxy主机启动haproxy服 务和keepalived。注意,haproxy由于keepalived服务启动 的时会自检测 haproxy是否若是haproxy务没,那主、备keepalivedfault状态。后,VIP址应haproxy-server经过令“ipa以查VIP加载

相关文章
相关标签/搜索