Nginx + keepalived 高可用 保姆教程

一、环境准备

masterbackupvip
192.168.1.11192.168.1.12192.168.146.100

注意:配置虚拟ip   (一台机子做虚拟ip就行)
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
# 内容
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.180
NETMASK=255.255.255.255
ifup ens33:0

route add -host 192.168.10.180 dev ens33:0  (两个都要做)

1.yum -y install nginx keepalived

二.修改keeplaived 配置文件:
vi /etc/keepalived/keepalived.conf

删除原配置文件内容替换以下内容 (两台都做)

global_defs {
   script_user root        # 检测脚本运行的用户
   enable_script_security
}
vrrp_script check_nginx {
    script "/etc/keepalived/script/chk_nginx_pid.sh" # 检测本机nginx进程是否开启
    interval 5         #检测间隔5秒
    fall 2             # 检测两次失败将实例定义为故障,移除vip
    rise 1            # 检测一次成功后将状态改为正常(设置不抢占后不会抢占vip)
    #weig
}
vrrp_instance NGINX {
    state MASTER        #主节点为MASTER,备节点BACKUP 
    interface ens33        #需要绑定的网卡,通常该主机的通信网卡
    virtual_router_id 42 # 同一个网络不能和其它vip重复,同一组vip必须相同,可自定义数值
    priority 90             #数值越大优先级越高
    #nopreempt # 设置不抢占模式
    advert_int 1
    authentication {
        auth_type PASS     #通过密码授权
        auth_pass abc123
    }
    track_script {
        check_nginx
    }
    virtual_ipaddress {
        192.168.1.100         #VIP地址
    }
}

(vip做一个就行)

(提前配好vip以及route add -host 192.168.146.100 dev ens33:0 (两个都要做)(配置一个ens33:0的网卡) )

(注意点 priority 数字越大优先级越高 也就是说第二台要比第一台小一点)

定义check_nginx检测脚本

vim chk_nginx_pid.sh

#!/bin/bash
#判断 Nginx 是否存活
countng=`ps -C nginx --no-header | wc -l`
if [ $countng -eq 0 ]; then
#如果不存活则尝试启动 Nginx
#/usr/sbin/nginx -c  /etc/nginx/nginx.conf      这里注释掉
sleep 2
#等待 2 秒后再次获取一次 Nginx 状态
counter=`ps -C nginx --no-header | wc -l`
#再次进行判断,如 Nginx 还不存活则停止 Keepalived,让地址进行漂移
if [ $counter -eq 0 ]; then
systemctl stop keepalived  #停用keepalived服务
fi
fi

[root@nginx-server script]# chmod +x chk_nginx_pid.sh

vim /etc/hosts

192.168.146.200 www.cat.com          指向VIP地址

cat /etc/nginx/nginx.conf

server {
        listen       80;
        server_name  www.cat.com;    
.....
        location / {
          root html;
          index index.html index.htm;
        }
....

修改网页内容 (master和backup)

echo 'wo shi 192.168.1.11' > /usr/share/nginx/html/index.html
echo 'wo shi 192.168.1.12' > /usr/share/nginx/html/index.html

systemctl start nginx keepalived 重启一下

ip a查看

 

检验

故障模拟

systemctl stop keepalived
 ip a 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值