+ 首页>>技能>>实用技巧>>内容

技能keepalived+haproxy高可用负载均衡配置详解500+次围观

本篇介绍的本人测试工作的内容:keepalived主要功能是实现真实机器的故障隔离及负载均衡器间的失败切换。Haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

keepalived配置详解

! Configuration File for keepalived
# 全局定义部分
global_defs {
   notification_email {
     kiven@xxxxx.com          #设置报警邮件地址,每行一个
                              #需开启本机sendmail服务
   }
   router_id LVS_DEVEL        #表运行Keepalived服务器的一个标志,邮件主题中显示
}
#失败切换脚本
vrrp_script failover {   
    script "/etc/keepalived/failover.sh"  #脚本路径
    Interval 2                            #脚本执行间隔
    weight 2                              #脚本执行结果导致的优先级变更
}
# vrrp实例定义部分
vrrp_instance VI_1 {
    state MASTER              #指定keepalived的角色,MASTER表示此主机是主服务器
                              #BACKUP表示是备用服务器
    interface eth0            #指定HA监测网络的接口
    virtual_router_id 51      #虚拟路由标志,同一个vrrp实例使用一个唯一标志
                              #即同一个vrrp_instance下,MASTER和BACKUP一致
    priority 100              #优先级,数字越大优先级越高,MASTER必须大于BACKUP
    advert_int 1              #MASTER和BACKUP同步检查间隔,秒
    authentication {          #设定验证类型和密码
        auth_type PASS        #验证类型,PASS和HA
        auth_pass 1111        #验证密码,MASTER和BACKUP密码相同才能进行通信
    }
    virtual_ipaddress {       #虚拟ip地址
        192.168.200.16
    }
    track_script { 
        failover             #添加脚本执行
    } 
    virtual_ipaddress { 
        xx.xx.xx.xx          #虚IP 
    } 
    notify_master /etc/keepalived/script_master.sh   #当切换到master(主服务器)时执行该脚本
    notify_backup /etc/keepalived/script_backup.sh   #当切换到backup(从服务器)时执行该脚本
}
# 虚拟服务器定义部分
virtual_serverxx.xx.xx.xx xx {  #设定虚拟服务器,指定IP和端口
    delay_loop 6              #设置运行情况检查时间,秒
    lb_algo rr                #设置负载调度算法,rr--轮询算法
    lb_kind NAT               #设置LVS实现负载均衡机制  NAT/TUN/DR
    nat_mask 255.255.255.0    #
    persistence_timeout 50    #会话保持时间,秒,在50秒内用户无操作,接下来的请求
                              #将被分发到另外节点
    protocol TCP              #指定转发协议类型,TCP/UDP

    real_server xx.xx.xx.xx xx { #配置服务节点1,指定真实ip和端口
        weight 1              #服务节点的权值,数字越大权值越高
        TCP_CHECK {           #realserve的状态检测设置,秒
            connect_timeout 3 #3秒无反应超时
            nb_get_retry 3    #重试次数
            delay_before_retry 3 #重试间隔
        }
    }
}

haproxy配置详解

global
user root 
group root 
daemon    #以后台形式运行haproxy
nbproc 1  #进程数量(可以设置多个进程提高性能) 
maxconn 65535 
pidfile /usr/local/haproxy/haproxy.pid   #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
log 127.0.0.1 local0 warning

defaults
mode http  #所处理的类别 (#7层 http;4层tcp  ) 
retries 2  
option redispatch     #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose   #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接 
timeout connect 30s   #连接超时
timeout client 1d     #客户端超时
timeout server 1d     #服务器超时
timeout check 200s    
log 127.0.0.1 local0 warning  #错误日志记录

listen admin_stats
bind 0.0.0.0:1080
mode http
option httplog
maxconn 10
stats refresh 10s
stats uri /check                #网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回503 
stats realm XingCloud\ Haproxy
#stats hide-version
stats admin if TRUE

#监听本地5222端口,将所有发往该端口的TCP请求全部转发到xx.xx.xx.xx的6222端口
listen xmpp_clinet_proxy:5222
bind 0.0.0.0:5222     #监听端口 
mode tcp              #http的7层模式
balance roundrobin    #负载均衡的方式,轮询方式
#服务器定义,check inter 1s是检测心跳频率 rise 2是2次正确认为服务器可用, fall 2是2次失败认为服务器不可用,weight代表权重 
server s172-16-217-236 xx.xx.xx.xx:6222 weight 1 maxconn 10000 check inter 1s rise 2 fall 2
server s172-16-217-237 xx.xx.xx.xx:6222 weight 1 maxconn 10000 check inter 1s rise 2 fall 2

listen xmpp_server_proxy:5269
bind 0.0.0.0:5269
mode tcp
balance roundrobin
server s172-16-217-236 xx.xx.xx.xx:6269 weight 1 maxconn 10000 check inter 1s rise 2 fall 2
server s172-16-217-237 xx.xx.xx.xx:6269 weight 1 maxconn 10000 check inter 1s rise 2 fall 2

+ 猜你喜欢...

  • 暂无推荐的相关日志.

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 发表评论

Copyright © 2014 DiggerPlus. 78 queries in 1.450 seconds.
使用合作网站账号快速登录,更多精彩等着您: 开源中国