7-nginx-keepalived配置主从双击热备

keepalive 是 VRRP 协议的完美实现, 通过vip(虚拟ip)来实现主从双击热备, 自动切换的高可用方案, nginx的主从是通过keepalived实现的

1, 安装keepalived, 多台nginx的服务器上分别安装

yum install keepalived

也可以通过本地安装包进行安装

wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar -zxvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --sysconf=/etc/  --with-kernel-dir=/usr/src/kernels/2.6.32-573.8.1.el6.x86_64
make && make install
ln -s /usr/local/sbin/keepalived  /sbin/

最后创建软连接是为了, service keepalived start 进行启动

2, 修改keepavlied配置

修改keepalived.conf

主机:

global_defs {
   notification_email {
     [email protected]163.com
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_MASTER
}
vrrp_script chk_http_port {
script "/home/keepalived/check_nginx_pid.sh"
interval 2                           #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
   #state MASTER
    state BACKUP
    nopreempt
    #设置非抢占模式时,修改“state MASTER”为“state BACKUP”,添加“nopreempt“
    interface bond0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
}
track_script {
chk_http_port            #(调用检测脚本)
}
    virtual_ipaddress {
        192.168.208.126
    }
}

从机配置:

global_defs {
   notification_email {
     [email protected]163.com
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_BACKUP
}
vrrp_script chk_http_port {
script "/home/keepalived/check_nginx_pid.sh"
interval 2                           #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface bond0
    virtual_router_id 51
    priority 66
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
}
track_script {
chk_http_port            #(调用检测脚本)
}
    virtual_ipaddress {
        192.168.208.126
    }
}

主机和从机的配置值在权重上有所差别, 别的都一样, 另外看了一些博客好多配置的权重都一样, 没有测试

3, vim /etc/keepalived/keepalived.conf

#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
 /usr/local/nginx/sbin/nginx
 sleep 5
 if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
 then
 killall keepalived
 fi
fi

4, 绑定虚拟ip, 就可以了

keepalive 相关参数说明:

 ! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]             #设置报警邮件地址,可以设置多个,每行一个。 需开启本机的sendmail服务
   }
   notification_email_from  [email protected]        #设置邮件的发送地址
   smtp_server 127.0.0.1                                #设置smtp server地址
   smtp_connect_timeout 30                              #设置连接smtp server的超时时间
   router_id LVS_DEVEL                                  #表示运行keepalived服务器的一个标识。发邮件时显示在邮件主题的信息
}

vrrp_instance VI_1 {
    state MASTER              #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
    interface eth0            #指定HA监测网络的接口
    virtual_router_id 51      #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
    priority 100              #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
    advert_int 1              #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {          #设置验证类型和密码
        auth_type PASS        #设置验证类型,主要有PASS和AH两种
        auth_pass 1111        #设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
    }
    virtual_ipaddress {       #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        10.0.0.148
    }
}

virtual_server 10.0.0.148 80 {      #设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
    delay_loop 6                    #设置运行情况检查时间,单位是秒
    lb_algo rr                      #设置负载调度算法,这里设置为rr,即轮询算法
    lb_kind DR                      #设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选
    persistence_timeout 50          #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统中的session共享提供了一个很好的解决方案。
                                    #有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话的保持时间。
                                    #需要注意的是,这个会话保持时间是最大无响应超时时间,也就是说,用户在操作动态页面时,如果50秒内没有执行任何操作,
                                    #那么接下来的操作会被分发到另外的节点,但是如果用户一直在操作动态页面,则不受50秒的时间限制
    protocol TCP                    #指定转发协议类型,有TCP和UDP两种

    real_server 10.0.0.137 80 {     #配置服务节点1,需要指定real server的真实IP地址和端口,IP与端口之间用空格隔开
        weight 3                    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
                                    #分配不同的负载,可以为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配系统资源
        TCP_CHECK {                 #realserver的状态检测设置部分,单位是秒
            connect_timeout 10      #表示3秒无响应超时
            nb_get_retry 3          #表示重试次数
            delay_before_retry 3    #表示重试间隔
            connect_port 80
        }
    }
    real_server 10.0.0.139 80 {
        weight 3
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}
时间: 2024-10-15 05:01:34

7-nginx-keepalived配置主从双击热备的相关文章

nginx+keepalived简单实现双击热备-高可用HA

主:192.168.1.2_nginx 备:192.169.1.3_nginx nginx部署情况: 新建运行账号:useradd -s /sbin/nologin nginx nginx账号密码:123456 部署路径:/usr/local/nginx/ nginx部署步骤: 1.解压pcre-8.38.tar.gz和nginx-1.8.1.tar.gz至nginx家目录 2.cd /root/nginx-1.8.1/ 3../configure --prefix=/usr/local/ngi

haproxy/nginx+keepalived负载均衡 双机热备 邮件报警 实战及常见问题

Haproxy 做http和tcp反向代理和负载均衡keepalived 为两台 Haproxy 服务器做高可用/主备切换.nginx   为内网服务器做正向代理,如果业务需求有变化,也可以部分替代 haproxy 做 http 反向代理.如果发生主备切换,向指定邮箱发送报警邮件. 本文比较裹脚布,没耐心的就别看了. 一.两台服务器,系统 CentOS6主机名        外网IP        内网IPlbserver_01  202.1.1.101   10.1.1.11/24lbserv

MHA大杀器——mysql主、从双击热备配置安装解析

MHA的主要作用: 在mysql的主从复制中,当master崩溃了,利用mha实现backup顶替崩溃的master自动切换为master继续工作,从而实现高可用. 下面介绍本次实验的环境: MHA分为manager管理节点和node节点,一般来讲最少是三台服务器,两台node节点,一台manager节点,但本次环境限制,只能使用两台,所以把manager也装在一台node节点上. 两台服务器,两个网口: IP: 10.2.16.253     10.0.0.1  node1 10.2.16.2

LVS-DR+Keepalived网站服务器双机热备配置

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层.第4层和第7层交换.Keepalived是自动完成,不需人工干涉.调度服务器:需要在LVS的基础上面做.参考上两节:负载均衡群集之一LVS-DR:http://blog.51cto.com/13572519/2084197负载均衡群集之-LVS-NAT:http://blog.51cto.com/13572519/2084181 一块网卡:Vmnet1:192.168.80.100主与从调度器上都

一个简单的双击热备、vpn方案

gre vpn 这个是前段时间在IDC公司上班的一个案例 案例要求: 1.客户要求两个内网之间能互相访问,只租用机房的地址. 2.在两个不同的地方,网段不一样内网不一样. 3.要求是在大并发情况下能使用(所以我放弃原本的open vpn方案,改用系统模块的gre.因为说对数据的全要求性也没那.在两个不同的地方,网段不一样内网不一样. 3.要求是在大并发情况下能使用(所以我放弃原本的open vpn方案,改用系统模块的gre.因为说对数据的全要求性也没那么高). 4.尽量要求不断网. 需求分析:么

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

Keepalived现实Web双机热备(高可用)

Keepalived现实Web双机热备(高可用) 通过在两台主.备调度器上实现Keepalived高可用解决调度器单点失败问题 主.备调度器上配置LVS,正常情况下主调度器工作 主调度器异常时,Keepalived启用备用调度器,保证了调度器的高可用 调度器保证了后台服务的高可用 Keepalived机制把同一个IP一直分配在同一个Web服务器 如下实现web服务器的高可用: web1 :  192.168.10.20     主 web2:   192.168.10.22     备 虚拟IP

Mysql + keepalived 实现双主热备读写分离【转】

Mysql + keepalived 实现双主热备读写分离 2013年6月16日frankwong发表评论阅读评论 架构图 系统:CentOS6.4_X86_64软件版本:Mysql-5.6.12,Keepalived-1.2.7环境简介:1.Master-A 192.168.1.168 (Mysql+Keepalived)2.Master-B 192.168.1.169 (Mysql+Keepalived)3.写入VIP 192.168.100 (168主,169从)4.读取VIP 192.1

使用Keepalived配置主从热备实现Nginx高可用(HA)

Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用. Keepalived 以 VRRP 协议为实现基础,用 VRRP 协议来实现高可用性(HA).VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议, VRRP 协议将两台或多台路由器设备虚拟成一个 设备,对外提供虚拟路由器 IP(一