Keepalived && Nginx 高可用性配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keepalived && Nginx 高可用性配置相关的知识,希望对你有一定的参考价值。

keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用。

运行原理

keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台服务器出现故障(断网,重启,或者本机器上的keepalived crash等),keepalived会从其他的备份机器上重选(还是看服务器设置的权重)一台机器做MASTER并分配同样的虚拟IP,充当前一台MASTER的角色。

选举策略

选举策略是根据VRRP协议,完全按照权重大小,权重最大(0~255)的是MASTER机器,下面几种情况会触发选举

1. keepalived启动的时候

2. master服务器出现故障(断网,重启,或者本机器上的keepalived crash等,而本机器上其他应用程序crash不算)

3. 有新的备份服务器加入且权重最大

 

配置实例

A主机:10.6.2.193

B主机:10.6.2.194

虚拟IP:10.6.2.195

 

Keepalived配置步骤

1、Yum安装依赖包

yum install popt-devel openssl openssl-devel

 

2、安装keepalived 软件

# tar zxvf keepalived-1.2.7.tar.gz
# cd keepalived-1.2.7
# mkdir /usr/local/keepalived
 # ./configure --prefix=/usr/local/keepalived

# make && make install

3、配置keepalived

# 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/
# mkdir -p /etc/keepalived
# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
  
[email protected]
   }
   notification_email_from
[email protected]
   smtp_server mail.centaline.com.cn
   smtp_connect_timeout 30
   router_id Ngx_1                #名字跟备用节点不要相同:Ngx_2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 55
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.6.2.195/24
    }
}


# chkconfig --add keepalived
# service keepalived start

 

 

 

 

 

  • global_defs: 全局配置标识,表面下面的区域{}是全局配置

  • notification_email: 里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个

  • notification_email_from:表示发送通知邮件时邮件源地址是谁

  • smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1

  • smtp_connect_timeout:连接smtp超时时间

  • vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值

  • state:本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。

  • interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定

  • virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样

  • priority:设置本节点的优先级,优先级高的为master,不能超过255

  • advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S

  • authentication:验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样

  • virtual_ipaddress:VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段

 

 

本文出自 “微软产品代理商” 博客,谢绝转载!

以上是关于Keepalived && Nginx 高可用性配置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx+Keepalived负载集群高可用

keepalived高可用nginx/htttpd,双主模型

nginx和keepalived实现nginx高可用

keepalived对nginx高可用演练脚本

配置Keepalived双实例高可用Nginx

Nginx+Keepalived实现站点高可用