GraphQL jsp regex iis ipad optimization charts knockoutjs Way.js vue响应式布局 郑州网站建设 郑州普通话考试 河南普通话 hbase端口 office配置进度 查看mysql密码 python练习 python3入门 python创建txt文件并写入 python中文 python操作mysql python中pop函数 python函数大全 java编程环境 java正则表达 java语言介绍 java生成当前时间 java定义变量 java遍历set javascript基础 sql综合利用工具 Ext2Fsd volist 主板排名天梯图 手机照片恢复免费软件 计算机网络自顶向下 ae脚本管理器 big5 迅雷去广告版 flash制作工具
当前位置: 首页 > 学习教程  > 编程语言

nginx-7-主备高可用

2020/11/24 9:42:28 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

(1)问题 nginx宕机的情况下,仍提供服务。 (2)高可用 (2-1)主从机器 master主,nginx1的IP192.168.0.83 slave备,nginx2的IP192.168.0.160 (2-2)tomcat1和tomcat2 当master死了,就使用slave完成请求。 主备都需要keepalived软件 …

(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


本文链接: http://www.dtmao.cc/news_show_400095.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?