nginx-7-主备高可用

(1)问题
nginx宕机的情况下,仍提供服务。

(2)高可用

(2-1)主从机器
master主,nginx1的IP192.168.0.83
slave备,nginx2的IP192.168.0.160

(2-2)tomcat1和tomcat2
当master死了,就使用slave完成请求。
主备都需要keepalived软件
虚拟IP

(3)准备工作

(3-1)需要两台服务器192.168.0.83和192.168.0.160
192.168.0.83 myuse1
192.168.0.160 myuse2

(3-2)需要两台服务器都安装nginx
nginx默认侦听端口是80
windows中浏览器输入192.168.0.83或192.168.0.160均可以访问到

(3-3)需要两台服务器都安装keepalived。
#yum -y install keepalived
#rpm -qa keepalived查看有没有安装成功
#cd /etc/keepalived/配置文件在此目录中
keepalived.conf后面更改这个文件即可

(3-4)改主配置文件
添加检查脚本
nginx_check.sh

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

keepalived.conf_master

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.0.83
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
	script "/root/nginx_check.sh"
	interval 2 #检测脚本执行的间隔
	weight 2
}


vrrp_instance VI_1 {
    state MASTER # 备份服务器上将MASTER改为BACKUP
    interface enp0s3 #网卡
    virtual_router_id 51 #主、备机的virtual_router_id必须相同
    priority 100 #主、备机取不同的优先级,主机值比较大,备机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.10 #VRRP虚拟地址
    }
}

(3-5)改备配置文件
添加检查脚本
nginx_check.sh

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

keepalived.conf_backup

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.0.83
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
	script "/root/nginx_check.sh"
	interval 2 #检测脚本执行的间隔
	weight 2
}


vrrp_instance VI_1 {
    state BACKUP # 备份服务器上将MASTER改为BACKUP
    interface enp0s3 #网卡
    virtual_router_id 51 #主、备机的virtual_router_id必须相同
    priority 90 #主、备机取不同的优先级,主机值比较大,备机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.10 #VRRP虚拟地址
    }
}

(4)主备都启动nginx和keepalived
#systemctl start nginx
#systemctl start keepalived
#ps -ef | grep nginx
#ps -ef | grep keepalived

(5)测试

(5-1)浏览器中输入虚拟IP:192.168.0.10
可以访问
主服务器中看到虚拟IP的绑定
#ip a
inet 192.168.0.10/32 scope global enp0s3
valid_lft forever preferred_lft forever

(5-2)关闭主服务器中的keepalived和nginx服务
#systemctl stop keepalived
#systemctl stop nginx
浏览器中输入虚拟IP:192.168.0.10
仍然可以访问

备份服务器中看到虚拟IP的绑定
#ip a
inet 192.168.0.10/32 scope global enp0s3
valid_lft forever preferred_lft forever

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮冰燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值