keepalived+nginx高可用配置

1.下载:
    wget  http://www.keepalived.org/software/keepalived-1.2.15.tar.gz

2.解压安装:
    yum install ipvsadm
    tar -zxvf keepalived-1.2.15.tar.gz
    cd keepalived-1.2.15
    ./configure --prefix=/usr/local/keepalived-1.2.15  --disable-fwmark --sysconfdir=/etc
    make && make install
    cd /usr/local;
    ln -s keepalived-1.2.15 keepalived
3.配置keepalive:
    [[email protected] keepalived]# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived

global_defs {
        lvs_id LVS_nginx
    notification_email {
            [email protected]
    }
    notification_email_from [email protected]
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    }
    vrrp_script chk_nginx {
        script "/etc/keepalived/scripts/nginx_check.sh"
        interval 2
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 61
        nopreempt
        priority 101
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass nginx
        }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.16.13/24 dev eth0 label eth0:1
    }
    notify_master "/etc/keepalived/scripts/nginx_script.sh master"
    notify_backup "/etc/keepalived/scripts/nginx_script.sh backup"
    notify_fault  "/etc/keepalived/scripts/nginx_script.sh master"
    }

[[email protected] keepalived]# cat /etc/keepalived/scripts/nginx_script.sh
    #!/bin/bash
    #auth desheng

NGINXCMD=/usr/local/nginx/sbin/nginx;
    HTTP_STATE=`curl -I http://localhost/check_ha_200.html 2>/dev/null |head -1|awk ‘{print $2}‘`;
    MASTER_CNT=`ps aux|grep "nginx:\ master\ process"|grep -v grep|wc -l`;
    WORKER_CNT=`ps aux|grep "nginx:\ worker\ process"|grep -v grep|wc -l`;
    VIP_CNT=`ifconfig |grep eth0:1|wc -l`;

LOGFILE=/var/log/keepalived_nginx_state.log;

if [ "$HTTP_STATE" == "200" -a "$MASTER_CNT"  -eq "1" -a "$WORKER_CNT" -ge "1" ] ;then
        echo "[$1]sucess...">>$LOGFILE
        exit 0;
    else
       sleep 1;
        HTTP_STATE=`curl -I http://localhost/check_ha_200.html 2>/dev/null |head -1|awk ‘{print $2}‘`;
        MASTER_CNT=`ps aux|grep "nginx:\ master\ process"|grep -v grep|wc -l`;
        WORKER_CNT=`ps aux|grep "nginx:\ worker\ process"|grep -v grep|wc -l`;
        VIP_CNT=`ifconfig |grep eth0:1|wc -l`;
        if [ "$HTTP_STATE" == "200" -a "$MASTER_CNT"  -eq "1" -a "$WORKER_CNT" -ge "1" ] ;then
            echo "[$1]sucess...">>$LOGFILE
            exit 0;
        elif [ "$VIP_CNT"  -eq "0"  ] ;then
            ps aux|grep ‘nginx: worker process‘|grep -v grep|awk ‘{print "kill -9 "$2}‘ | sh
                ps aux|grep ‘nginx: master process‘|grep -v grep|awk ‘{print "kill -9 "$2}‘ | sh
                $NGINXCMD
                echo "[$1]restart...">>$LOGFILE;
        fi;
    fi;

[[email protected] keepalived]# cat /etc/keepalived/scripts/nginx_check.sh
    #!/bin/bash
    #auth desheng

NGINXCMD=/usr/local/nginx/sbin/nginx;
    HTTP_STATE=`curl -I http://localhost/check_ha_200.html 2>/dev/null |head -1|awk ‘{print $2}‘`;
    MASTER_CNT=`ps aux|grep "nginx:\ master\ process"|grep -v grep|wc -l`;
    WORKER_CNT=`ps aux|grep "nginx:\ worker\ process"|grep -v grep|wc -l`;
    VIP_CNT=`ifconfig |grep eth0:1|wc -l`;

LOGFILE=/var/log/keepalived_nginx_state.log;

if [ "$HTTP_STATE" -eq "200" -a "$MASTER_CNT"  -eq "1" -a "$WORKER_CNT" -ge "1" ] ;then
        echo "[check]sucess...">>$LOGFILE
        exit 0;
    else
        sleep 1;
        HTTP_STATE=`curl -I http://localhost/check_ha_200.html 2>/dev/null |head -1|awk ‘{print $2}‘`;
        MASTER_CNT=`ps aux|grep "nginx:\ master\ process"|grep -v grep|wc -l`;
        WORKER_CNT=`ps aux|grep "nginx:\ worker\ process"|grep -v grep|wc -l`;
        if [  "$HTTP_STATE" -eq "200" -a "$MASTER_CNT"  -eq "1" -a "$WORKER_CNT" -ge "1" ] ;then
            echo "[check]sucess...">>$LOGFILE
            exit 0;
        else
            echo "[check]failed...">>$LOGFILE
            exit 1;
        fi;
    fi;
4.测试:
    service keepalived start
    ifconfig
    pkill -9 nginx
    ifconfig
    ps aux|grep nginx

时间: 2024-12-28 09:20:38

keepalived+nginx高可用配置的相关文章

keepalive && Nginx 高可用配置

keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用. 运行原理 keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台服务器出现故障(断网,重启,或者本机器上的keepalived crash等),keepalived会从其他的备份机器上重选(还是看服务器设置的权重)一台机器做MASTER并分配同样的虚拟IP,充

keepalived+nginx高可用环境搭建

高可用方案其实很多,而且有很多成本是非常低和简单的.比如你如果有一个网站,高可用最简单的就是nds+nginx+两台机器. 我们由于是客户的一个项目,dns申请是非常麻烦的,所以才考虑用keepalived+nginx做高可用方案. 从网上整理了HA常用组合. heartbeat v2+crm heartbeat v3+pacemaker corosync+pacemaker cman + rgmanager keepalived+lvs. 这里我们没有用lvs,而是直接用了nginx,感觉就两

keepalived+Nginx高可用负载均衡

说明:准备两台虚拟机:202.207.178.6和202.207.178.7 前提: 由于是高可用服务,首先配置高可用服务实现的一些基本条件 1)节点名称必须跟uname -n命令的执行结果一致 node1: # hostname node1 # vim /etc/sysconfig/network HOSTNAME=node1 node2: # hostname node2 # vim /etc/sysconfig/network HOSTNAME=node2 2)节点之间必须通过ssh互信通

keepalived+nginx高可用负载均衡环境搭建

上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用.下面接着说下nginx的环境搭建 环境信息: nginx(master)  192.168.1.106 nginx(bakup)   192.168.1.103 首先安装一下pcre yum install pcre-devel 安装完了解压nginx.我用的是nginx-1.6.2.tar.gz tar -zvxf nginx-1.6.2.tar.gz cd nginx-1.6.

keepalived + nginx高可用集群

1.安装环境与版本: 3个CentOS 7 虚拟机 3个Nginx实例 centos-100 centos-101 centos-102 192.168.200.100 192.168.200.101 192.168.200.102 设置keepalived虚拟ip为192.168.200.99 2.改nginx首页 $ cd /usr/java/nginx/html/ $ vi index.html 分别在首页上加上各主机ip,能在网页上访问,以便于后面测试ip 3.安装keepalived

Centos 7部署docker+nginx+keepalived实现高可用web集群

一.体系架构 在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟切换时间,DNS服务可以负责前端VIP的负载均衡.nginx负责控制后端web服务器的负载均衡,将客户端的请求按照一定的算法转发给后端Real Server处理,而Real Server将响应直接返回给客户端. 二.简单原理 NG

LVS+keepalived 实现高可用群集

高可用群集(High Availability Cluster) 以提高应用系统的可靠性.尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果.列如,“故障切换”,“双机热备”,“多机热备”等都属于高可用集群技术. HA 的工作方式包括双工和主从两种,双工即所有节点同时在线:主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点. LVS+Keepalived 实现高可用负载均衡集群 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5

基于Keepalived构建高可用集群配置实例(HA Cluster)

什么是集群 简单的讲集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点(node).一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统.并且集群系统的管理员可以随意增加和删改集群系统的节点. 关于更详细的高可用集群我们在后面再做详解,先来说说Keepalived Keepalived是什么 Keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbea

nginx高可用负载均衡配置

Nginx+keepalived 实现高可用负载均衡集群 一.Nginx简介 Nginx ("engine x") 是一个高性能HTTP和反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx