keepalived高可用Nginx Proxy服务

  • 准备四台主机为host(1-4);
  • host1 host2上配置Nginx调度服务和keepalived服务;
  • 主机host3和主机host4提供Web服务
    • host1:192.168.10.11
    • host2:192.168.10.12
    • host3:192.168.10.13
    • host4:192.168.10.14

安装服务:

#安装服务:给四台主机分别安装所需服务应用

[root@host1 ~]#yum -y install nginx keepalived
[root@host2 ~]#yum -y install nginx keepalived
[root@host3 ~]#yum -y install nginx 
[root@host3 ~]#yum -y install nginx

#编辑测试页:直接把内容重定向即可

[root@host1 ~]#echo "<h1>测试页内容</h1>" > /usr/share/nginx/html/index.html
[root@host2 ~]#echo "<h1>测试页内容</h1>" > /usr/share/nginx/html/index.html
[root@host3 ~]#echo "<h1>测试页内容</h1>" > /usr/share/nginx/html/index.html
[root@host4 ~]#echo "<h1>测试页内容</h1>" > /usr/share/nginx/html/index.html

两台Nginx调度主机上配置Nginx Proxy服务

主机host1上配置Nginx Proxy服务:

主机host2上配置Nginx Proxy服务:

两台Nginx调度主机上配置keepalived服务

  • 这里我采用单主模式!也可以双主模式,双主模式也很简单,keepalived配置文件里再vrrp_instance即可;
  • 这里我定义了两个脚本,稍微演示下keepalived的script功能;

主机host1上配置keepalived服务:

[root@host1 keepalived]#cat keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     ngt@mgl.com
   }
   notification_email_from grh_ngt@mgl.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id host1
   vrrp_mcast_group4 224.89.51.18
}

vrrp_script chk_down {             # 定义的脚本,意思是/etc/keepalived目录下有down文件就虚拟IP地质转移
   script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
   interval 1                      # 检测间隔
   weight -10                      # 降权,也就是减去优先级多少值
   fall 2                          # 检测到两次错误才发生转移
   rise 1                          # 至少正常1次才算正常
}

vrrp_script chk_nginx {            # 定义的脚本,意思是Nginx进程是否在运行,如果没有就虚拟IP地址转移;
        script "killall -0 nginx && exit 0 || exit 1"
        interval 2
        weight -10
        fall 2
        rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 89
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass nQyVIaY1
    }
    virtual_ipaddress {
        192.168.10.88
    }

        track_script {               # 调用定义的脚本
                chk_down
                chk_nginx
        }
}
[root@host1 keepalived]#

主机host2上配置keepalived服务:

[root@host2 keepalived]#cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     ngt@mgl.com
   }
   notification_email_from grh_ngt@mgl.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id host2
   vrrp_mcast_group4 224.89.51.18
}

vrrp_script chk_down {
   scrip "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
   interval 1
   weight -10
   fall 2
   rise 1
}

vrrp_sript chk_nginx {
   script "killall -0 nginx"
   interval 2
   weight -10
   fall 2
   rise 2
}
vrrp_instance VI_1 {
    state BACKUP     <-- 这里是BACKUP
    interface ens33
    virtual_router_id 89
    priority 95
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass nQyVIaY1
    }
    virtual_ipaddress {
        192.168.10.88
    }
    track_script {                # 调用定义的脚本
        chk_nginx
        chk_down
    }
}

在四台主机上启动各自的服务:

systemctl start nginx
systemctl start keepalived

测试:

  • 1. 关闭主机host1的Nginx:systemctl stop nginx

    • 查看host2的keepalived状态和IP地址


      host2
    • 客户端上测试是否能够访问后端Web服务


      在客户端主机上
  • 2. 测试调用脚本:这里只检测一项脚本

    测试脚本,创建down文件和删除down文件,兼顾查看IP

注意降权和地址漂移

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容