Keepalived+Nginx搭建

(Keepalived+Nginx)单实例主备模式

1.环境准备
CentOS :7.4
Keepalived :1.3.5
nginx :1.12.0
nginx-1 :192.168.178.8 (master)
nginx-2:192.168.178.9 (backup)

安装依赖包,临时关闭selinux 和firewalld
[root@8 /]# yum install gcc-c++ pcre-devel openssl-devel -y
[root@8 /]# setenforce 0
[root@8 /]# systemctl stop firewalld

2.在master和backup端安装nginx(也可以选择YUM安装,如已安装可以跳过进行Keepalived

[root@8 /]# cd /tools/
[root@8 tools]# ls
nginx-1.12.0.tar.gz
[root@8 tools]# tar -zxf nginxnx-1.12.0.tar.gz 
[root@8 tools]# ls
nginx-1.12.0  nginxnx-1.12.0.tar.gz
[root@8 tools]# cd nginxnx-1.12.0
[root@8 nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=www --group=www  --with-http_stub_status_module --with-http_ssl_module
[root@8 nginx-1.12.0]# make&&make install
[root@8 sbin]# useradd www
[root@8 sbin]# /usr/local/nginx/sbin/nginx

以上Nginx安装完成,打开浏览器访问 192.168.178.8 192.168.178.9 能访问到 Nginx页面

3.安装Keepalived,在master和backup端安装Keepalived,并配置Keepalived

yum install keepalived -y

3.1 配置Keepalived: MASTER keepalived 配置文件
vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
  notification_email {
      support@jfedu.net
 }
    notification_email_from wgkgood@163.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30 
    router_id LB01                                 #(注意master和backup不可以一样)
 }

 vrrp_script chk_nginx {
    script  "/data/sh/check_ngx.sh"
    interval 2
    weight 2
 }
 # VIP1
 vrrp_instance VI_1 {
     state MASTER                                 #(注意master和backup不可以一样)
     interface ens33
     virtual_router_id 151
     priority 150                                 #(注意master和backup不可以一样)
     advert_int 5
     authentication {
         auth_typePASS
         auth_pass  1111

     }
     virtual_ipaddress {
         192.168.178.188
     }
     track_script {
     chk_nginx
    }
 }

3.2 配置 BACKUP keepalived 配置文件
vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
  notification_email {
      support@jfedu.net
 }
    notification_email_from wgkgood@163.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30 
    router_id LB02                                #(注意backup和master不可以一样)
 }

 vrrp_script chk_nginx {
    script  "/data/sh/check_ngx.sh"
    interval 2
    weight 2
 }
 # VIP1
 vrrp_instance VI_1 {
     state BACKUP                                   #(注意backup和master不可以一样)
     interface ens33
     virtual_router_id 151
     priority 100                                   #(注意backup和master不可以一样)
     advert_int 5
     authentication {
         auth_typePASS
         auth_pass  1111

     }
     virtual_ipaddress {
         192.168.178.188
     }
      track_script {
     chk_nginx
    }
 }

4.在master和backup端编写检测Nginx脚本,目的是 检测Nginx是否存活如果不存活就关闭Keepalived

[root@8 /]# mkdir -p /data/sh/
[root@8 /]# cd /data/sh/

[root@8 sh]# cat << EOF >/data/sh/check_ngx.sh
> #!/bin/bash 
> #auto  check  nginx  process 
> #2019年6月7日12:45:49
> #by  author  xiaojian
> 
> NUM=`ps -ef |grep -v grep |grep -c nginx`
> if  [[ $NUM -eq 0 ]]  ;then
> systemctl stop keepalived
> sleep 3
> fi
> EOF

5.启动master 端查看keepalived 状态还有VIP地址

[root@8 sh]# systemctl start keepalived 
[root@8 sh]# tail -fn  10 /var/log/messages
[root@8 sh]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0e:48:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.8/24 brd 192.168.178.255 scope global ens33  #master端本机IP地址
       valid_lft forever preferred_lft forever                  
    inet 192.168.178.188/32 scope global ens33                    #(VIP 地址)
       valid_lft forever preferred_lft forever
    inet6 fe80::ca0c:d857:75a7:d0e4/64 scope link 
       valid_lft forever preferred_lft forever
    inet6 fe80::661e:3774:68bb:3e82/64 scope link tentative dadfailed 
       valid_lft forever preferred_lft forever
[root@8 sh]#

在这里插入图片描述
5.1再看backup端

[root@9 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:fd:88:05 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.9/24 brd 192.168.178.255 scope global ens33    #backup端只有本机IP地址
       valid_lft forever preferred_lft forever
    inet6 fe80::661e:3774:68bb:3e82/64 scope link 
       valid_lft forever preferred_lft forever

在这里插入图片描述
6.测试是否成功
在master 端杀死nginx 会发现vip自动切换到backup端,此时backup会变成master,如下图
在这里插入图片描述

以上搭建实验的只是keealived单点主备模式,还可以做主主模式,当然了主主模式更好

故乡容不下肉身,他乡容不下灵魂,若能一世安稳,谁愿颠沛流离!!
前路浩浩荡荡,万事尽可期待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值