Keepalived + Nginx双主架构

Keepalived + Nginx双主架构

环境准备:

keepalived_master1服务器+nginx:172.20.26.167

keepalived_master2服务器+nginx:172.20.26.198

各服务器关闭selinux、防火墙等服务。

开机安装部署nginx

在172.20.26.167服务器上

yum install nginx -y

echo "this is 167server" > /usr/share/nginx/html/index.html  #修改主页内容,方便区分

nginx

然后启动nginx服务。

在172.20.26.198服务器上

yum install nginx -y

echo "this is 198server" > /usr/share/nginx/html/index.html  修改主页内容,方便区分

nginx

然后启动nginx服务。

部署keepalived服务

分别在172.20.26.167、172.20.26.198安装keepalived服务

yum install keepalived -y

vim /etc/keepalived/keepalived.conf   #分别设置VIP1地址172.20.26.200、VIP2地址172.20.26.201,并增加chk_nginx 的脚本检测以及脚本追踪:

vrrp_script chk_nginx {

       script "/data/sh/chk_nginx.sh"

       interval 1

       weight 2

      }

track_script {

           check_nginx

           }

追踪上面所定义的chk_nginx,名字要与上面定义的一致。

 将配置文件拷贝到172.20.26.198服务器/etc/keepalived/目录下

scp /etc/keepalived/keepalived.conf 172.20.26.198:/etc/keepalived/

vim /etc/keepalived/keepalived.conf

分别在172.20.26.167、172.20.26.198服务器上创建/data/sh目录及chk_nginx.sh脚本:

mkdir -p /data/sh    #创建脚本目录

vim /data/sh/chk_nginx.sh   #编写脚本文件

#!/bin/bash

killall -0 nginx &>/dev/null

if [[ $? -ne 0]];then

   /etc/init.d/keepalived stop

fi

chmod +x /data/sh/chk_nginx.sh    #授权执行权限

两台服务器启动keepalived服务,查看VIP地址172.20.26.200、172.20.26.201分别在172.20.26.167、172.20.26.198服务器上

systemctl start keepalived

 域名绑定:

172.20.26.200 blog.jfedu.net

172.20.26.201 blog.jfedu.net

客户端访问blog.jfedu.net ,访问的是172.20.26.167服务器上的nginx站点。

测试

在172.20.26.167服务器上将nginx服务stop掉,客户端访问bolg.jfedu.net 将访问到 172.20.26.198服务器上的nginx站点“this is 198server”。

将172.20.26.167服务器上的nginx 服务启动后,客户端访问bolg.jfedu.net 又将访问到 172.20.26.167服务器上的nginx站点“this is 167server”。

如果172.20.26.167服务器上的keepalived服务down掉,VIP地址172.20.26.200将漂移到172.20.26.198服务器上,172.20.26.198服务器上将出现两个VIP地址,客户端访问nginx站点,也将访问到 172.20.26.198服务器上的nginx站点“this is 198server”。

当172.20.26.167服务器上keepalived服务重新启动后,将夺回172.20.26.200VIP地址,客户端访问bolg.jfedu.net 将访问到 172.20.26.167服务器上的nginx站点“this is 167server”。

当172.20.26.198服务器上的keepalived服务down掉,VIP 地址172.20.26.201将漂移到172.20.26.167服务器上。

当172.20.26.198服务器上keepalived服务重新启动后,将夺回172.20.26.201VIP地址;

至此,keepalived + nginx双主架构,部署完成。

Nginx+keepalived双主企业架构,在日常维护及管理过程中需要注意如下几个方面:

1、Keepalived主配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也各不相同;

2、Nginx网站总访问量为两台Nginx服务器之和,可以写脚本自动统计访问量;

3、两台Nginx为Master,存在两个VIP地址,用户从外网访问VIP,需配置域名映射到两个VIP上方可。

4、通过外网DNS映射不同VIP的方法也称为DNS负载均衡模式;

5、可以通过Zabbix实时监控VIP访问状态是否正常。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式深度学习中的数据并行和模型并行

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介、安装、使用方法之详细攻略

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具底层基于RAG)的简介、安装、使用方法之详细攻略 目录 Vanna的简介 1、用户界面 2、RAG vs. Fine-Tuning 3、为什么选择Vanna? 4、扩展Vanna Vanna的安装和使用方法 1、安装 2、训练 (1)、使用…

c#中使用UTF-8编码处理多语言文本的有效策略

使用UTF-8编码处理多语言文本的有效策略 在当今的全球化时代,软件开发者常常需要处理包含多种语言的文本。这不仅涉及英文和其他西方语言,还包括中文、日文、韩文等多字节字符系统。在这篇博客中,我将探讨如何有效地使用UTF-8编码来处理混合语…

项目管理认证 | 什么是PMP项目管理?PMP证书有什么用?

01 什么是项目管理? 项目管理?听起来似乎离我们很遥远。其实不然, 学习了项目管理知识后,你会发现,“一切都是项目,一切也将成为项目”。 你可以把港珠澳大桥的建设、开发一款新型手机、开发一个好用的C…

HarmonyOS 发送http网络请求

好 本文 我们来说 http请求 首先 我们要操作网络内容 需要申请权限 项目中找到 main目录下的module.json5 最下面加上 "requestPermissions": [{"name": "ohos.permission.INTERNET"} ]这里 我在本地写了一个get接口 大家可以想办法 弄一个后…

RabbitMQ交换机

目录 交换机类型 直连交换机:Direct exchange 主题交换机:Topic exchange 扇形交换机:Fanout exchange 首部交换机:Headers exchange 死信交换机:Dead Letter Exchange 交换机的属性 代码实战 直连&#…

x-cmd pkg | frp - 内网穿透工具

简介 frp(Fast Reverse Proxy)是一个专注于内网穿透的高性能反向代理应用,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 它采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部…

使用torch实现RNN

在实验室的项目遇到了困难,弄不明白LSTM的原理。到网上搜索,发现LSTM是RNN的变种,那就从RNN开始学吧。 带隐藏状态的RNN可以用下面两个公式来表示: 可以看出,一个RNN的参数有W_xh,W_hh,b_h&am…

[AutoSar]BSW_OS 06 Autosar OS_Alarms

一、 目录 一、关键词平台说明一、Timer1.1 配置1.2Periodical Interrupt Timer (PIT)和High Resolution Timer (HRT) 二、Alarm 工作机制三、Code3.1创建一个15ms的runnable3.2mapping到basic task3.3生成代码 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueO…

k8s的helm

1、在没有helm之前,部署deployment、service、ingress等等 2、helm的作用:通过打包的方式,deployment、service、ingress这些打包在一块,一键部署服务、类似于yum功能 3、helm:官方提供的一种类似于仓库的功能&#…

时间轮设计

目录 基本概念 函数定义 函数实现与测试 测试1结果如下 测试2结果如下 基本概念 时间轮 是一种 实现延迟功能(定时器) 的 巧妙算法。如果一个系统存在大量的任务调度,时间轮可以高效的利用线程资源来进行批量化调度。把大批量的调度任务…

React16源码: React中的resetChildExpirationTime的源码实现

resetChildExpirationTime 1 )概述 在 completeUnitOfWork 当中,有一步比较重要的一个操作,就是重置 childExpirationTimechildExpirationTime 是非常重要的一个时间节点,它用来记录某一个节点的子树当中,目前优先级最…

C++提高编程——STL:string容器、vector容器

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

数据结构:堆与堆排序

目录 堆的定义: 堆的实现: 堆的元素插入: 堆元素删除: 堆初始化与销毁: 堆排序: 堆的定义: 堆是一种完全二叉树,完全二叉树定义如下: 一棵深度为k的有n个结点的二…

ffmpeg使用及java操作

1.文档 官网: FFmpeg 官方使用文档: ffmpeg Documentation 中文简介: https://www.cnblogs.com/leisure_chn/p/10297002.html 函数及时间: ffmpeg日记1011-过滤器-语法高阶,逻辑,函数使用_ffmpeg gte(t,2)-CSDN博客 java集成ffmpeg: SpringBoot集成f…

科技云报道:金融大模型落地,还需跨越几重山?

科技云报道原创。 时至今日,大模型的狂欢盛宴仍在持续,而金融行业得益于数据密集且有强劲的数字化基础,从一众场景中脱颖而出。 越来越多的公司开始布局金融行业大模型,无论是乐信、奇富科技、度小满、蚂蚁这样的金融科技公司&a…

深度学习如何弄懂那些难懂的数学公式?是否需要学习数学?

经过1~2年的学习,我觉得还是需要数学有一定认识,重新捡起高等数学、概率与数理、线代等这几本,起码基本微分方程、求导、对数、最小损失等等还是会用到。 下面给出几个链接,可以用于平时充电学习。 知乎上的: 机器学…

计算机毕业设计 基于SpringBoot的律师事务所案件管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

git merge和git rebase区别

具体详情 具体常见如下,假设有master和change分支,从同一个节点分裂,随后各自进行了两次提交commit以及修改。随后即为change想合并到master分支中,但是直接git commit和git push是不成功的,因为分支冲突了【master以…

上位机图像处理和嵌入式模块部署(流程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,传统图像处理的方法,一般就是pccamera的处理方式。camera本身只是提供基本的raw data数据,所有的…