Nginx入门到精通六(高可用配置)

下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程

Nginx相关文章 

Nginx入门到精通一(基本概念介绍)-CSDN博客

Nginx入门到精通二(安装配置)-CSDN博客

Nginx入门到精通三(Nginx实例1:反向代理)-CSDN博客

Nginx入门到精通四(反向代理2)-CSDN博客

Nginx入门到精通六(高可用配置)-CSDN博客

Nginx入门到精通七(Nginx原理)-CSDN博客

========================================================

高可用介绍

正常访问的时候,由Master负责处理请求,当master挂掉的时候,由备份服务器处理请求;

准备工作

1, 准备2台Nginx服务器;192.168.10.128 和 192.168.10.130

2, 2台Nginx中安装Keepalived:yum install -y keepalived

验证keepalived:rpm -q -a keepalived

3, 虚拟IP:192.168.10.10

高可用配置

编辑配置文件:/etc/keepalived/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.10.128								# smtp地址,设为本地地址
   smtp_connect_timeout 30									# smtp超时时间
   router_id LVS_DEVEL										# 本地的host那么,要和hosts文件中红一致;
}

vrrp_script chk_http_port {									#脚本检测块,用于设置一个自定义的健康检查脚本,该脚本用于监控HTTP服务端口的状态					
    script "/usr/local/src/nginx_check.sh"					
    interval 2 			
    weight 2	
}
vrrp_instance VI_1 {
    state MASTER											#角色: MASTER/BACKUP
    interface ens33											#网卡
    virtual_router_id 51									#路由ID,主从要保持一致
    priority 100											# 优先级,主库优先级高于从库
    advert_int 1											# BACKUP将每秒钟发送一次VRRP广告报文和MASTER同步
    authentication {										# 密码校验
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {										# 虚拟IP地址
        192.168.10.10		
    }
}	

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.10.130
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh"
    interval 2                  
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP 
    interface ens33
    virtual_router_id 51 
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.10
    }
}

脚本配置

编辑:/usr/local/src/nginx_check.sh 脚本

脚本内容如下,检查nginx进程是否存活,如果不存活则启动nginx,如果启动失败则关闭keepalived;

[root@docker01 nginx]# cat /usr/local/src/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和Keepalive

keepalived启动命令:systemctl start keepalived.service

启动后,在MASTER上通过`ip a` 可以查看虚拟IP的绑定关系;BACKUP上没有,因为此时虚拟IP绑定的是MASTER

测试验证

1, 访问VIP:192.168.10.10 走MASTER,可以正常访问;

2, 将MASTER手动停止,模拟MASTER故障的情况;

停止keepalived 和Nginx,并验证

systemctl stop keepalived.service

 /usr/local/nginx/sbin/nginx -s stop

 停止MASTER后依然访问192.168.10.10 访问,此时走的BACKUP

4, 此时再把MASTER 的keepalived和nginx拉起,请求又回到MASTER

配置说明

我在实际操作过程中遇到如下问题,可能是由于环境导致

1,keepalived日志查看 journalctl -u keepalived.service

2, 在主备上创建keepalive账户,并授权。不用设置密码;如果没有创建会报错

WARNING - default user ‘keepalived_script‘ for script execution does not exist - please

useradd -m keepalived_script,这是keepalive默认执行命令的账户

chown -R keepalived_script.keepalived_script /etc/keepalived/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/797640.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Django+Vue3 线上教育平台项目实战】构建高效线上教育平台之首页模块

文章目录 前言一、导航功能实现a.效果图:b.后端代码c.前端代码 二、轮播图功能实现a.效果图b.后端代码c.前端代码 三、标签栏功能实现a.效果图b.后端代码c.前端代码 四、侧边栏功能实现1.整体效果图2.侧边栏功能实现a.效果图b.后端代码c.前端代码 3.侧边栏展示分类及…

springboot1——快速构建项目

需求 第一步:创建maven工程(非web项目) 第二步:导入起步依赖 点击: 下拉复制: 粘贴:!!这是springboot工程需要继承的父工程 下拉复制: 粘贴:!&#xf…

android13 文件管理器无法安装apk 奔溃问题

总纲 android13 rom 开发总纲说明 目录 1.前言 2.我们简单写个apk测试下 3.排查客户apk 4.frameworks源码排查 5.编译验证 6.彩蛋 1.前言 客户提供的文件管理apk不能安装apk文件,一点击就奔溃。 2.我们简单写个apk测试下 private void installApk(File apkFile) {i…

将swagger注解导入apifox的IDEA配置

在使用IDEA开发中,经常需要将后端接口导出到Apifox,以便于测试。将swagger注解内容导出到Apifox中,需要进行以下设置: file->settting打开对话框,选择Other Settings -> Apifox Help,如下图: 2.选…

【JavaWeb程序设计】Servlet(二)

目录 一、改进上一篇博客Servlet(一)的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类:创建SqlSessionFactory实例,进行 My…

Twelve Labs:专注视频理解,像人类一样理解视频内容

在当今数字化世界中,视频已成为人们获取信息和娱乐的主要方式之一。 AI视频生成领域的竞争也很激烈,Pika、Sora、Luma AI以及国内的可灵等,多模态、视频生成甚至也被视为大模型发展的某种必经之路。然而,与文本生成相比&#xff…

什么ISP?什么是IAP?

做单片机开发的工程师经常会听到两个词:ISP和IAP,但新手往往对这两个概念不是很清楚,今天就来和大家聊聊什么是ISP,什么是IAP? 一、ISP ISP的全称是:In System Programming,即在系统编程&…

【蓄势·致远】 同为科技(TOWE)2024年年中会议

2024年7月2日-8日,同为科技(TOWE)召开2024年年中工作会议。会议回顾上半年总体工作情况,分析研判发展形势,规划部署下半年工作。 为期一周的工作会议,由同为科技(TOWE)创始人、董事长…

MySQL的插入(DML)

1.给指定字段添加数据 这个就是,想插入所对应的字段,就插入所对应的数值。先把字段列出来,不一定是全部的字段, 然后插入想要的值,注意,只能插入一行。 INSERT INTO 表名 (字段1,字段2,.....) VALUES(值…

vue学习day08-v-model详解、sync修饰符、ref和$refs获取dom组件、Vue异步更新和$nextTick

25、v-model详解 (1)v-model原理 1)原理: v-model本质上是一个语法糖,比如:在应用于输入框时,就是value属性与input事件的合写。 2)作用 ①数据变,视图变 ②视图变&#xff0c…

网络协议 — Keepalived 高可用方案

目录 文章目录 目录Keepalived 是实现了 VRRP 协议的软件Keepalived 的软件架构VRRP StackCheckersKeepalived 的配置Global configurationvrrp_scriptVRRP Configurationvrrp synchroization groupvrrp instancevirtual ip addressesvirtual routesLVS Configurationvirtual_s…

Qt+MySQL实现社团管理系统

开发环境 ● Qt 5.14.1 ● Win10 ● Mysql 5.7.28 系统介绍 系统主要实现的功能如下图所示 社团管理系统主要包含了以下几个亮点功能 轮播图显示社团信息支持excel形式的导入导出学生信息权限控制(管理员、超级管理员、用户) 系统效果展示 登录界面…

Leetcode(经典题)day2

H指数 274. H 指数 - 力扣(LeetCode) 先对数组排序,然后从大的一头开始遍历,只要数组当前的数比现在的h指数大就给h指数1,直到数组当前的数比现在的h指数小的时候结束,这时h的值就是要返回的结果。 排序…

Python酷库之旅-第三方库Pandas(021)

目录 一、用法精讲 52、pandas.from_dummies函数 52-1、语法 52-2、参数 52-3、功能 52-4、返回值 52-5、说明 52-6、用法 52-6-1、数据准备 52-6-2、代码示例 52-6-3、结果输出 53、pandas.factorize函数 53-1、语法 53-2、参数 53-3、功能 53-4、返回值 53-…

用户登陆实现前后端JWT鉴权

目录 一、JWT介绍 二、前端配置 三、后端配置 四、实战 一、JWT介绍 1.1 什么是jwt JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间以安全的方式传输信息。JWT 是一种紧凑、自包含的信息载体&…

UML/SysML建模工具更新情况(2024年7月)(1)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 工具最新版本:Enterprise Architect 17.0 BETA 更新时间:2024年7月2日 工具简介 性价比很高,目前最流行的UML建模工具。还包含需求管理、项目估算…

【ZooKeeper学习笔记】

1. ZooKeeper基本概念 Zookeeper官网:https://zookeeper.apache.org/index.html Zookeeper是Apache Hadoop项目中的一个子项目,是一个树形目录服务Zookeeper翻译过来就是动物园管理员,用来管理Hadoop(大象)、Hive&…

数据恢复篇:适用于 Android 的恢复工具

正在摆弄 Android 设备。突然,您意外删除了一张或多张图片。不用担心,您总能找到一款价格实惠的照片恢复应用。这款先进的软件可帮助 Android 用户从硬盘、安全数字 (SD) 或存储卡以及数码相机中恢复已删除的图片。 Android 上文件被删除的主要原因 在获…

昇思学习打卡-13-LLM原理与实践/解码原理--以MindNLP为例

文章目录 搜索方法集束搜索(beam search)贪心搜索(greedy search) 采样池处理结果 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 搜索方法 集束搜索(beam search) Beam search通过在每个时间步保留最可能的 num_beams 个词,并从中最终选择出…

C++·多态

1. 多态的概念 多态通俗讲就是多种形态,就是指去完成某个行为,当不同对象去做时会产生不同的结果或状态。 比如买火车票这个行为,同样是买票的行为,普通成年人买到全价票,学生买到半价票,军人优先买票。这个…