码迷,mamicode.com
首页 > 其他好文 > 详细

构建高可用负载均衡—CentOS6.4+Haproxy+Keepalive

时间:2014-12-06 06:39:13      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:keepalive+haproxy

1、实验拓扑如下,这里用NGINX做的基于端口的虚拟主机,方便之后的测试

bubuko.com,布布扣 

 

2、安装前准备

Haproxy 国内下载你懂得

Keepalived 下载地址www.keepalive.org

同步时间

#ntpdate pool.ntp.org

3haproxy安装(主备节点安装一样)

#tar -zxvf haproxy-1.5.9.tar.gz 
#cd haproxy-1.5.9
# uname -a
Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
#make TARGET=linux26 PREFIX=/usr/local/haproxy install
#cd /usr/local/haproxy
# mkdir conf logs

4、创建配置文件信息如下

#vim conf/haproxy.cfg 
global  
     log 127.0.0.1 local0//日志输出配置,所有日志都记录在本机,通过local0输出
     maxconn  5120  //最大连接数 
     chroot   /usr/local/haproxy  //改变当前工作目录
     uid      100  //所属用户的uid
     gid      100  //所属用户的gid
     daemon  //以后台形式运行haproxy   
     nbproc   2  //创建2个进程进去deamon模式
     pidfile  /usr/local/haproxy/logs/haproxy.pid  //pid文件
  
defaults  
     log     127.0.0.1  local3  
     mode    http  //http七层,tcp4层,health只返回OK
     option  httplog  //采用httpd日志格式
     option  dontlognull  
     option  redispatch  
     retries 3  //三次失败认为服务不可用
 maxconn 3000  //默认的最大连接数
     contimeout 5000  //连接超时时间
     clitimeout 50000  //客户端超时时间
     srvtimeout 50000  //服务器超时时间
     stats enable  
     stats uri /admin  //统计页面的url
     stats auth admin:admin  //统计页面的用户名密码
     stats realm Haproxy \ statistic  //统计页面提示信息
 stats hide-version//隐藏统计页面版本信息
  
listen web_proxy *:80
 server web1 192.168.1.128:80 check inter 5000 fall 1 rise 2  
 server web1 192.168.1.128:8080 check inter 5000 fall 1 rise 2
//check inter 5000 是检测心跳频率,rise 2 是2次正确认为服务可用,fall 1 是1次失败认为服务不可用,weight代表权重


5keepalive安装配置(主备安装一样,注意配置文件的修改)

# yum -y install openssl-devel
#tar -zxvf keepalived-1.2.13.tar.gz
#cd keepalived-1.2.13
#./configure --prefix=/usr/local/keepalived
#make && make install
 
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
#chmod +x /etc/init.d/keepalived 
#mkdir /etc/keepalived
#ln -sf /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf


6、修改配置文件

# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived
 
global_defs {
   notification_email {
     root@localhost.com
   }
   notification_email_from root@localhost.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
   script "/root/chk_haproxy.sh"//检测脚本
   interval 2
   weight 2
}
 
vrrp_instance VI_1 {
    state MASTER //实例的初始状态,备节点为BACKUP
    interface eth0
    virtual_router_id 51
    priority 100//高优先级精选master,至少高backup50
    advert_int 1
    authentication {
        auth_type PASS//认证方式,支持PASS和AH
        auth_pass 1111//认证的密码
    }
    virtual_ipaddress {
        192.168.1.200//vip
    }
        track_script {
        chk_haproxy//检测命令
        }
}


7keepalived检测脚本

# cat chk_haproxy.sh 
#!/bin/bash
A=`ps -C haproxy --no-header | wc -l`
if [ $A = 0 ] ;then
/etc/init.d/keepalived stop
fi


8、启动keepalived

# service keepalived start
 
报错信息
Starting keepalived: /bin/bash: keepalived: command not found
[FAILED]
解决方法
# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived


9、验证过程

首先先看下nginx配置

bubuko.com,布布扣

bubuko.com,布布扣

 

分别启动MasterSLAVE ,看到主备节点日志如下:

 

bubuko.com,布布扣


bubuko.com,布布扣


Master上可以看到vip信息

bubuko.com,布布扣 

之后测试haproxy负载均衡是否正确

bubuko.com,布布扣

bubuko.com,布布扣

 

看下自动监控页面,发现轮询正常!

bubuko.com,布布扣 

之后测试Masterhaproxy挂掉了,是否切换

#killall haproxy

之后看下keepalived的日志信息,发现主的已经根据脚本停掉了,并且VIP开始漂移

bubuko.com,布布扣


Slave的可以看到已经升为Master并且获得VIP地址

bubuko.com,布布扣

 bubuko.com,布布扣


最后在测试访问,均正常!

bubuko.com,布布扣

bubuko.com,布布扣

 


本文出自 “毛竹之势” 博客,请务必保留此出处http://peaceweb.blog.51cto.com/3226037/1586797

构建高可用负载均衡—CentOS6.4+Haproxy+Keepalive

标签:keepalive+haproxy

原文地址:http://peaceweb.blog.51cto.com/3226037/1586797

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!