前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Keepalived实现NginxHA高可用

通过Keepalived实现NginxHA高可用

作者头像
天策
发布2018-06-22 15:18:33
8930
发布2018-06-22 15:18:33
举报
文章被收录于专栏:行者悟空

摘 要

Keepalived是由C语言编写,目标是基于Linux为应用提供简单而又强大的负载均衡和高可用的服务。

概述

随着互联网井喷式发展,单节点服务已经不能满足并发需求,通常利用nginx反向代理来实现集群部署以此解决并发需求(nginx负载均衡实现)。此时虽然保证了应用的集群化和高容灾性,但nginx却单节点运行,这极大的为系统宕机埋下伏笔。为此我们必须来采用一主一备或一主N备的方式来保证nginx的运行,高可用(HA- High Availability)的解决方案很多,本文以Keepalived来进行讲解。

关于Keepalived

Keepalived是由C语言编写,目标是基于Linux为应用提供简单而又强大的负载均衡和高可用的服务。负载均衡是依赖于广泛使用的Linux虚拟服务器(IPVS)内核模块提供的第四层负载均衡。而高可用是通过VRRP协议实现。注:本文暂只针对高可用来讲解。

架构说明

安装Keepalived
代码语言:javascript
复制
#下载keepalived
wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
#解压keepalived
ar zxvf keepalived-1.2.7.tar.gz
#进入keepalived目录
cd keepalived-1.2.7
#配置并检查源码
./configure --prefix=/
#编译
make
#安装
make install
配置Keepalived

配置中的state MASTER决定了节点为主节点 priority决定了优先级,比如在有多个备用节点的时候,主节点故障后优先级值大的接管。 主节点的配置如下:

代码语言:javascript
复制
#校验脚本
vrrp_script chk_nginx {
#  script "killall -0 nginx"
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}
#添加需要设置的ip
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
#自身机器所在ip
mcast_src_ip    192.168.155.1
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
#虚拟ip,对外公开
    virtual_ipaddress {
        192.168.155.12
    }
#执行校验函数
 track_script {
       chk_nginx
    }
}

校验脚本如下,意思是判断nginx进程是否存在,如果不存在则尝试启动。如果不能启动将退出keepalived服务,由其他服务器接管。接管的依据依靠priority 的值来决定,哪个节点值最大,则有哪个来接管。

代码语言:javascript
复制
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /opt/nginx/sbin/nginx
   sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
 if [ "${counter}" = "0" ]; then
        /etc/init.d/keepalived stop
    fi
fi

配置完成后,将两个文件copy到其他keepalived节点。并将priority设置合理。这样我们的nginx高可用就已经完成啦... ...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年10月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 关于Keepalived
  • 架构说明
  • 安装Keepalived
  • 配置Keepalived
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档