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

最近刚学习了负载均衡的知识,昨天实战了一下,但是遇到了一些奇怪的问题,查找无方之后,自己探索摸出了原因,所以今天就带大家实战一遍,避免走坑。

提前准备
VMwareCentOS7(两台)

方案规划

VIPIPNginx port主从
192.168.100.241192.168.100.7080master
192.168.100.241192.168.100.380backup

一、虚拟机的网络适配器修改为桥接模式
在这里插入图片描述
二、更新yum

$ yum upgrade

三、安装依赖

$ yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

四、安装wget

$ yum install -y wget

五、下载Nginx、Keepalived

$ cd /home
$ wget http://nginx.org/download/nginx-1.13.0.tar.gz
$ wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz

六、解压

$ tar -zxvf nginx-1.13.0.tar.gz
$ tar -zxvf keepalived-2.0.20.tar.gz

七、安装Nginx
① 创建Nginx目录

$ mkdir /usr/local/nginx

② 进入Nginx解压文件目录,配置安装路径

$ cd /home/nginx-1.13.0
$ ./configure --prefix=/usr/local/nginx

③ 编译安装

$ make && make install

④ 设置Nginx开机自启

$ vi /etc/rc.local

#末尾加入
/usr/local/nginx/sbin/nginx

⑤ 修改页面标识

$ cd /usr/local/nginx/html
$ vi /index.html

如图,在h1标签中的nginx后加上-1,另一台的加上-2
在这里插入图片描述
⑥ 启动nignx

$ ./usr/local/nginx/sbin/nginx

在这里插入图片描述
在这里插入图片描述
八、安装Keepalived
① 创建keepalived目录

$ mkdir /usr/local/keepalived

② 进入keepalived解压目录,配置安装路径

$ cd /home/keepalived-2.0.20
$ ./configure --prefix=/usr/local/keepalived

③ 编译安装

$ make && make install

④ 创建目录,复制keepalived的配置到该目录

$ mkdir /etc/keepalived
$ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

⑤ 将keepalived安装service服务

$ cp /home/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/
$ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 以下两步如果提示已存在则忽略
$ ln -s /usr/local/sbin/keepalived /usr/sbin/
$ ln -s /usr/local/keepalived/sbin/keepalived /sbin/

⑥ 设置keepalived服务开机启动

$ chkconfig keepalived on

⑦ 编辑keepalived配置(192.168.100.70)

$ vi /etc/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id nginx_master
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2 ## 检测时间间隔
    weight -20 ## 如果条件成立,权重 -20
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 58
    mcast_src_ip 192.168.100.70
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.100.241
    }
}

⑧ 编辑keepalived配置(192.168.100.3)

$ vi /etc/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id nginx_backup_01
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 58
    mcast_src_ip 192.168.100.3
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.100.241
    }
}

特别注意interface的值要跟你的网卡(外网)名称一样, ip addr 可查看到名称
⑨ 编写Nginx状态检测脚本

$ touch /etc/keepalived/nginx_check.sh
$ vi /etc/keepalived/nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
fi
fi

⑩ 给nginx_check.sh加上执行权限

$ chmod +x /etc/keepalived/nginx_check.sh

⑪ 启动keepalived

$ service keepalived start
Starting keepalived (via systemctl):                       [  确定  ]

⑫ 查看日志

$ tail -fn 200 /var/log/messages

在这里插入图片描述
⑬ 查看网卡信息

$ ip addr

在这里插入图片描述
⑭ 在浏览器上输入VIP地址
在这里插入图片描述
⑮ 关闭master(192.168.100.70)的Keepalived和Nginx

$ service keepalived stop
$ /usr/local/nginx/sbin/nginx -s stop

⑯ 查看backup(192.168.100.3)的网卡信息

$ ip addr

在这里插入图片描述
⑰ 刷新浏览器
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值