HAProxy
HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件(PS:nginx最新版也可以基于第四层和第七层的负载均衡)。
HAProxy和Keepalived 都采用源码方式安装,如果没有gcc编译器,需要先安装gcc编译工具。
下载解压安装
下载haproxy:http://www.haproxy.org/download/1.4/src/
1 2 3 4 5 6 7
   | tar zxvf haproxy-1.4.24.tar.gz cd haproxy-1.4.24 make install mkdir -p /usr/local/haproxy/etc mkdir -p /usr/local/haproxy/sbin cp examples/haproxy.cfg /usr/local/haproxy/etc ln -s /usr/local/sbin/haproxy /usr/local/haproxy/sbin/haproxy
   | 
 
修改配置文件
vim /usr/local/haproxy/etc/haproxy.cfg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
   | global      maxconn 51200      chroot /usr/local/haproxy      uid 99     gid 99     daemon           nbproc 1       pidfile /usr/local/haproxy/logs/haproxy.pid     
 
  defaults           mode http  			                        option redispatch         option abortonclose         timeout connect 5000ms            timeout client 30000ms            timeout server 30000ms                     log 127.0.0.1 local0 err  			         balance roundrobin
  	 	 	 	
    listen admin_stats 		         bind 0.0.0.0:8888            option httplog         stats refresh 30s            stats uri /stats              stats realm Haproxy Manager         stats auth admin:admin          
  listen tcp_test         bind :12345         mode tcp         server t1 127.0.0.1:9000         server t2 192.168.15.13:9000          listen zzs_dzfp_proxy:90 		mode http 		balance roundrobin            cookie LBN insert indirect nocache            option httpclose            server web01 192.168.15.12:9000 check inter 2000 fall 3 weight 20           server web02 192.168.15.13:9000 check inter 2000 fall 3 weight 20
   | 
 
启停haproxy
启动Haproxy
1
   | /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
   | 
 
停止Haproxy:
访问统计页面:
1
   | http://10.10.3.163:1080/stats
   | 
 
Keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
下载解压编译安装
下载地址:http://www.keepalived.org/download.html
 或者 :
1 2
   | wget http://www.keepalived.org/software/keepalived-1.2.8.tar.gz
 
   | 
 
安装:
1 2 3 4 5
   | tar zxvf keepalived-1.2.8.tar.gz cd keepalived-1.2.8 ./configure --prefix=/usr/local/keepalived make make install
   | 
 
安装成功后做成服务模式
1 2 3
   | cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
   | 
 
1 2 3 4
   | mkdir -p /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf chmod +x /etc/init.d/keepalived vi /etc/keepalived/keepalived.conf
   | 
 
修改文件配置keepalived.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
   | global_defs {     router_id LVS_DEVEL }
  vrrp_script chk_haproxy {     script "/etc/keepalived/chk_haproxy.sh"      interval 2        weight -10     } vrrp_instance VI_1 {     state MASTER               interface eth0             virtual_router_id 51       priority 100               advert_int 1               mcast_src_ip 192.168.15.12         authentication {          auth_type PASS           auth_pass 12345678     }     track_script {         chk_haproxy         }     virtual_ipaddress {         192.168.15.235        } }
 
  | 
 
监控脚本配置
vi /etc/keepalived/chk_haproxy.sh
1 2 3 4 5 6 7 8 9 10
   | tatus=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l) if [ "${status}" = "0" ]; then     /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
      status2=$(ps aux|grep haproxy | grep -v grep | grep -v bash |wc -l)
      if [ "${status2}" = "0"  ]; then             /etc/init.d/keepalived stop     fi fi
   | 
 
这个配置文件意思:检查haproxy是否挂掉,如果挂掉启动haproxy;若启动之后还是没有检测到启动状态,则关闭keepalived,让IP飘移到备机上。
启动停止keepalived命令
1 2
   | service keepalived start  service keepalived stop	
   |