HAProxy双机高可用方案之HAProxy+Keepalived

一、keepalived高可用

HAProxy双机高可用方案之HAProxy+Keepalived

Keepalived 的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除, 当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web服务器。

系统环境: RHEL6.5x86_64 small install selinux and iptables disabled

Virtual IP            192.168.2.254


192.168.2.162    server62.exampl.com    (master)

192.168.2.163    server63.example.com(backup)

192.168.2.52      desktop52.example.com(real server)

192.168.2.53      desktop53.example.com(real server)

编辑/etc/hoststs做以上解析

1.keepalived的安装配置


主备机上的软件包安装与配置

#yum install ipvsadm kernel-devel openssl-devel popt-devel libnl-devel gcc make -y

源码编译安装keepalived:

#wget

#tar zxf keepalived-1.2.12.tar.gz

#cd  keepalived-1.2.12

#./configure --prefix=/usr/local/keepalived    (安装目录)

... Keepalived configuration

------------------------

Keepalived version          : 1.2.5

Compiler                        : gcc

Compiler flags                : -g -O2

Extra Lib                          : -lpopt -lssl -lcrypto  -lnl

Use IPVS Framework      : Yes

IPVS sync daemon support : Yes

IPVS use libnl                : Yes

Use VRRP Framework    : Yes

Use VRRP VMAC            : Yes

SNMP support              : No

Use Debug flags            : No

#make && make install

创建链接:

#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

#ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

#ln -s /usr/local/keepalived/etc/keepalived /etc/

#ln -s /usr/local/keepalived/sbin/keepalived /sbin


keepalived主配置文件的修改:

#vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
 global_defs {

notification_email {
    root@localhost          #接收警报的 email 地址,可以添加多个

}
  notification_email_from keepalived@server62.example.com #设置邮件的发送地址

smtp_server 127.0.0.1 #设置邮件的发送地址

smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间

router_id LVS_DEVEL #load balancer 的标识 ID,用于 email 警报

}
vrrp_instance VI_1 {
    state MASTER            #备机改为 BACKUP,此状态是由 priority 的值来决定的,当前 priority 的值小于备机的值,那么将会失去 MASTER 状态

interface eth0            #HA 监测网络接口

virtual_router_id 200  #主、备机的 virtual_router_id 必须相同,取值 0-255

priority 78                  #主机的优先级,主机优先级一定要大于备机

advert_int 1              #主备之间的通告间隔秒数

authentication {        #主备切换时的验证

auth_type PASS    #设置验证类型,主要有 PASS 和 AH 两种

auth_pass 1111    #设置验证密码,在一个 vrrp_instance 下,MASTER 与 BACKUP 必须使用相同的密码才能正常通信
}
    virtual_ipaddress {
        192.168.2.254        #设置虚拟 IP 地址,可以设置多个虚拟 IP 地址,每行一个

}
    virtual_server 192.168.2.254 80 {#定义虚拟服务器

delay_loop 6          #每隔 6 秒查询 realserver 状态

lb_algo rr              #lvs 调度算法,这里使用轮叫

lb_kind DR            #LVS 是用 DR 模式

#persistence_timeout 50 #会话保持时间,单位是秒,这个选项对于动态网页是非常有用的,为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能,用户的 请求会被一直分发到某个服务节点,直到超过这个会话保持时间。需要注意的是,这个会话保 持时间,是最大无响应超时时间,也就是说用户在操作动态页面时,如果在 50 秒内没有执行任 何操作,那么接下来的操作会被分发到另外节点,但是如果一直在操作动态页面,则不受 50 秒 的时间限制。

protocol TCP          #指定转发协议类型,有 tcp 和 udp 两种

real_server 192.168.2.52 80 {    #配置服务节点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/244ec9b5d7097b702b1fab9c7f6b4bf5.html