Nginx+Keepalived实现Nginx高可用

在架构设计中,可以利用NGINX的反向代理和负载均衡实现后端应用的高可用性,同时我们还需要考虑Nginx的单点故障。真正做到架构高可用性。

主要考虑以下几点:

1、Nginx服务因为意外现象挂掉

2、服务器宕机导致NGINX不可用

目前主流的解决方案就是keepalived+nginx 实现nginx的故障转移,同时做好监控报警。在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题。

模拟环境:

序号 环境名称 IP地址 环境介绍
1 访问客户端1 10.57.3.29 mac  有Chrome等浏览器
2 nginx备+keepalived备 10.57.31.205 反向代理 nginx高可用备
3 nginx主+keepalived主 10.57.31.206 反向代理 nginx高可用主
4 web应用服务器 10.57.27.20 web应用
5 VIP 10.57.31.230

nginx服务和web应用是已经配置好的环境,这里就不介绍相关的配置。强烈建议关闭Firewalld和selinux服务

1、keepalived的安装

yum install -y  keepalived

2、keepalived主(10.57.31.206)

[[email protected] ~]# cat  /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id nginx02  # router_id  唯一标识符
   vrrp_skip_check_adv_addr
   vrrp_stricti
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script check_nginx {  
	script "/etc/keepalived/nginx_check.sh"   #nginx服务检查脚本
	interval 1
	weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0  #网卡  
    virtual_router_id 52  #默认为51  配置完发现主备切换有问题 更改为52 发现好了  原因未知
    priority 150     #主备的优先级priority 
    advert_int 1     #检查时间1秒
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script  {
	check_nginx
	}

    virtual_ipaddress {
        10.57.31.230/24    #vip地址 
    }
}
}

启动服务后观察网卡信息

3、keepalived备(10.57.31.205)

# Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id nginx01
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 52

    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.57.31.230/24
    }
}

}

启动服务后观察网卡信息

故障转移

引起keepalived vip漂移的几个常见因素

1、服务器宕机

2、监听网卡故障

3、某一服务或者其他事件触发 可以用脚本监听服务端口 服务 进程等

测试一:将主服务器宕机

测试步骤、

1、ping VIP

2、将主keepalived服务器宕机

3、观察ping情况和VIP飘移情况 同时坚持web服务

结果:

ping出现过丢包

2 VIP转移

VIP漂移成功,服务能正常访问 恢复主机后 接管备机的VIP

测试二、停止主节点的网络服务

备节点

出现脑裂情况找不到VIP

测试三  测试nginx服务不能正常工作时VIP漂移

#!/bin/bash
#检查nginx的pid文件是否存在 不存在时 killall  keepalivedVIP漂移
NGINXPID="/usr/install/nginx/logs/nginx.pid"
if  [ ! -f  $NGINXPID  ];then
	killall keepalived
fi

配置文件已经在上面的模块中再不描述。

测试过程中遇到的问题:

1、virtual_router_id 配置为51 的时候漂移有问题

2、漂移过程中 备机防火墙意外开启 导致网络无法访问

原文地址:http://blog.51cto.com/dreamlinux/2154816

时间: 2024-08-07 01:07:49

Nginx+Keepalived实现Nginx高可用的相关文章

Nginx+Keepalived实现站点高可用

Nginx+Keepalived实现站点高可用 Posted on 2015-05-18   |   In Linux, Nginx  |   15条评论 公司内部 OA 系统要做线上高可用,避免单点故障,所以计划使用2台虚拟机通过 Keepalived 工具来实现 nginx 的高可用(High Avaiability),达到一台nginx入口服务器宕机,另一台备机自动接管服务的效果.(nginx做反向代理,实现后端应用服务器的负载均衡)快速搭建请直接跳至 第2节. 1. Keepalived

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:

Nginx+Keepalived 主备高可用 安装与配置

环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10.219.24.26备nginx + Keepalived :10.219.24.23虚拟IP:10.219.24.100后端tomcat_1:10.219.24.21:8080后端tomcat_2:10.219.24.21:8081 架构与原理: 前端双 Nginx + Keepalived ,Ng

nginx+keepalived双主高可用负载均衡

实验环境及软件版本:CentOS版本: 6.6(2.6.32.-504.el6.x86_64)nginx版本: nginx-1.6.3keepalived版本:keepalived-1.2.7 主LB1:LB-110-05 主LB2:LB-111-06 一.安装准备及依赖(用SecureCRT的交互窗口同时对两台LB操作,只贴出LB1的操作过程在此) [[email protected] ~]# mkdir tools [[email protected] ~]# mkdir /applicat

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepalived实现的HA(High Available).为什么要实现高可用呢?曾经在搭建的时候仅仅用了一台Nginxserver,这种话假设Nginxserver宕机了,那么整个站点就会挂掉.所以要实现Nginx的高可用,一台挂掉还会有还有一台顶上去.从而保证站点能够持续的提供服务. 关于负载均衡和动静

Nginx+Keepalived+Proxy_Cache 配置高可用集群和高速缓存

环境: CentOS release 6.5 x86_64    192.168.100.90 CentOS release 6.5 x86_64    192.168.100.91 在主备服务器上部署Nginx 下载 #wget http://nginx.org/download/nginx-1.6.3.tar.gz #  wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz 安装 # yum install gcc ope

nginx+keepalived+tomcat配置高可用web集群

基本架构: 角色 ip 安装软件 作用 主机名 nginx主 192.168.247.129 nginx+keepalived 反向代理 nginxmaster.com nginx备 192.168.247.130 nginx+keepalived 反向代理 nginxsalve.com tomcat1 192.168.247.128 tomcat web服务器 tomcat1.com tomcat2 192.168.247.131 tomcat web服务器 tomcat2.com nfs主

配置Keepalived双实例高可用Nginx

我们知道Keepalived原生设计目的是为了高可用LVS集群的,但Keepalived除了可以高可用LVS服务之外,还可以基于vrrp_script和track_script高可用其它服务,如Nginx等.本篇主要演示如何使用Keepalived高可用Nginx服务(双实例),关于vrrp_script.track_script的更多介绍可以见上一篇博客<Keepalived学习总结>. 实验要求 ==> 实现Keepalived基于vrrp_script.track_script高可

Keepalived+LVS+Nginx负载均衡之高可用

Keepalived+LVS+Nginx负载均衡之高可用 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求.所以系统架构引入Keepalived组件,实现系统高可用. 一.Keepalived介绍 Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Serve

Keepalived+Nginx实现双主高可用负载均衡

Keepalived+Nginx实现双主高可用负载均衡 一.部署Nginx+keepalived高可用有两种配置方案: 1.Nginx+keepalived 主从配置 前端使用两台机器,使用一个VIP,即其中一台为主负责全部请求,一台为备,只用在主出现故障时,才会替代主处理请求,平常处于闲置状态,此方案不够理想.  2.Nginx+keepalived 双主配置 前端使用2台机器,使用两个VIP,互为主备,不考虑其他情况时均衡处理请求,当其中一台机器出现故障时,另一台负责处理对两台机器的请求,此