keepalived实现nginx高可用,一主一备

keepalived实现nginx高可用(HA)

安装直接yum安装就可以,版本可能比官网落后,但是够用了,

yum -y install keepalived

编辑配置文件,默认路径 /etc/keepalived/keepalived.conf,这里将默认配置文件重命名,新建一个空的配置文件

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf
global_defs {
    notification_email {
        [email protected]
    }
    notification_email_from [email protected]
    smtp_server smtp.example.com
    smtp_connection_timeout 30
    router_id nginx_master        # 设置nginx master的id,在一个网络应该是唯一的
}
vrrp_script chk_http_port {
    script "/etc/keepalived/check_nginx_pid.sh"    #最后手动执行下此脚本,以确保此脚本能够正常执行
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight 2   #fall 3                       #连续监测失败3次,才认为真的健康检查失败。并调整优先级    #rise 2                        #连续监测成功2次,认为健康检查成功,调整优先级

}
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface eth0            # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    virtual_router_id 66        # 虚拟路由编号,主从要一直
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
    chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.10.200            # 定义虚拟ip(VIP),可多设,每行一个
    }
}

上面是MASTER的配置文件,BACKUP的配置文件只需要修改"state MASTER"为"state BACKUP"和"priority 100"为"priority 99"

keepalived日志默认输出到/var/log/messages,可以tail -f 查看日志debug

nginx检测脚本check_nginx_pid.sh内容如下:

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
      /usr/sbin/nginx                #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived
      fi
fi

脚本执行完返回0表示成功,返回非0表示失败,这里如果nginx重启失败,直接是停掉keepalived服务。

vrrp_script中节点权重改变算法

vrrp_script 里的script返回值为0时认为检测成功,其它值都会当成检测失败;

  1. weight 为正时,脚本检测成功时此weight会加到priority上,检测失败时不加;

    1. 主失败:

      1. 主 priority < 从 priority + weight 时会切换。
    2. 主成功:
      1. 主 priority + weight > 从 priority + weight 时,主依然为主
  2. weight 为负时,脚本检测成功时此weight不影响priority,检测失败时priority – abs(weight)
    1. 主失败:

      1. 主 priority – abs(weight) < 从priority 时会切换主从
    2. 主成功:
      1. 主 priority > 从priority 主依然为主

参考 https://www.cnblogs.com/youzhibing/p/7327342.html

原文地址:https://www.cnblogs.com/nieqibest/p/9839453.html

时间: 2024-08-29 07:35:16

keepalived实现nginx高可用,一主一备的相关文章

Nginx+Keepalived负载均衡高可用(双机热备)

Nginx+Keepalived负载均衡高可用(双机热备) 1.1 Nginx安装及配置 1.2 Keepalived安装及配置 1.3 WebServer安装 1.4 测试Nginx+Keepalived 环境如下: CentOS 6.4_64K eepalived-1.2.12 Nginx-1.4.4 vip:192.168.10.50 master:192.168.10.11 backup:192.168.10.12 webserver1:192.168.10.13 webserver2:

keepalived对nginx高可用演练脚本

keepalived对nginx高可用演练脚本 参考文章:http://deidara.blog.51cto.com/400447/302402/ 1.安装nginx.keepalived.epel-release源 yum install -y epel-release yum install -y nginx yum install -y keepalived 2.配置好nginx 3.设置keepalived配置文件 #主机 vi /etc/keepalived/keepalived.co

nginx和keepalived实现nginx高可用

首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用. Keepalived以VRRP协议为实现基础,用VRRP协议来实现高可用性(HA).VRRP (Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),如下图所示: 这张图的意

Nginx+Keepalived实现Nginx高可用

在架构设计中,可以利用NGINX的反向代理和负载均衡实现后端应用的高可用性,同时我们还需要考虑Nginx的单点故障.真正做到架构高可用性. 主要考虑以下几点: 1.Nginx服务因为意外现象挂掉 2.服务器宕机导致NGINX不可用 目前主流的解决方案就是keepalived+nginx 实现nginx的故障转移,同时做好监控报警.在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题. 模拟环境: 序号 环境名称 IP地址 环境介绍 1 访问客户端1 10.57.3.2

keepalived实现nginx高可用

1.环境说明 IP 服务 作用 192.168.1.101 nginx + keepalived master 192.168.1.102 nginx + keepalived backup 192.168.1.103 虚拟ip(VIP) 说明:系统:CentOS 6.10master配一个,backup可以配置多个:虚拟ip(VIP):192.168.1.103,对外提供服务的ip,也可称作浮动ip 2.nginx 安装与配置 2.1.安装nginx master和backup所有节点都安装配

Keepalived 实现 nginx 高可用

一.什么是 keepalived Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务.   上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空

keepalived+lvs+nginx 高可用

keepalived是一款用C编写的,旨在给linux系统和基于linux的设施提供简单.稳固的高可用和负载均衡功能的软件.它基于linux内核的ipvs模块实现4层负载均衡,能应用一系列的健康状态检测机制基于VRRP协议实现服务的高可用. 一.VRRP协议 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种容错协议.通常,一个网络内的所有主机都设置一条默认路由,这样,主机发出的目的地址不在本网段的报文将被通过默认路由发往路由器RouterA

基于keepalived的nginx高可用

#nginx,keepalived安装略过 MASTER 节点配置文件(192.168.1.11) vi /etc/keepalived/keepalived.conf global_defs { ##keepalived自带的邮件提醒需要开启sendmail服务.建议用独立的监控或第三方SMTP ##标识本节点的字条串,通常为 hostname router_id 192.168.1.11 } ##keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance

Nginx配置upstream实现负载均衡及keepalived实现nginx高可用

(原文链接:http://www.studyshare.cn/blog-front//blog/details/1159/0 ) 一.准备工作 1.准备两个项目,发布到不同的服务器上,此处使用2个虚拟机发布了两个项目分别为:http://192.168.28.128:8081, http://192.168.28.129:8081 2.在两个虚拟机上都安装好nginx 二.配置upstream 1.在任意一台虚拟机上所安装的nginx的nginx.conf配置文件中配置upstream如下: 以