lvs+keepalived+nginx双主模式双主热备实现负载均衡

目录

一、原理

二、真实服务器nginx配置

三、lvs的keepalived配置

3.1 配置文件

3.2 开启keepalived服务

四、测试

4.1 测试访问VIP

4.2 模拟lvs01宕机


主机名IP
nginx0111.0.1.31
nginx0111.0.1.31
lvs0111.0.1.33
lvs0211.0.1.34
VIP111.0.1.29
VIP211.0.1.30

一、原理

lvs+keepalived+nginx主备模式下,lvs永远只有一台在工作,资源利用率并不高,双主模式可以解决这一问题。

确保真实IP11.0.1.31、11.0.1.32访问正常

二、真实服务器nginx配置

nginx01、nginx02 执行real_server.sh脚本

新建real_server.sh脚本并执行,脚本内容为lo网卡新增两个虚拟接口,添加linux内核路由,关闭arp功能。

[root@nginx01 ~]# cat /etc/keepalived/real_server.shifconfig lo:0 11.0.1.29 netmask 255.255.255.255 broadcast 11.0.1.29
route add -host 11.0.1.29 dev lo:0ifconfig lo:1 11.0.1.30 netmask 255.255.255.255 broadcast 11.0.1.30 
route add -host 11.0.1.30 dev lo:1echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce[root@nginx01 ~]# chmod +x /etc/keepalived/real_server.sh[root@nginx01 ~]# sh /etc/keepalived/real_server.sh

查看nginx01网卡信息

查看nginx02网卡信息

三、lvs的keepalived配置

3.1 配置文件

注意有两个VRRP实例,两个VIP,一个VRRP实例对应一个VIP

VRRP 1(VIP 11.0.1.29)

11.0.1.33 master

11.0.1.34 slave

VRRP 2(VIP11.0.1.30)

11.0.1.33 slave

11.0.1.34 master

lvs01-33

[root@lvs01-33 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 31priority 100advert_int 1authentication {auth_type PASSauth_pass abcd}virtual_ipaddress {11.0.1.29}
}vrrp_instance VI_2 {state BACKUPinterface ens33virtual_router_id 41priority 99advert_int 1authentication {auth_type PASSauth_pass abcd}virtual_ipaddress {11.0.1.30}
}virtual_server 11.0.1.29 80 {delay_loop 6lb_algo rr                  lb_kind DR                     protocol TCPreal_server 11.0.1.31 80 {weight 1        inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}real_server 11.0.1.32 80 {weight 1        inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}
}virtual_server 11.0.1.30 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 11.0.1.31 80 {weight 1        inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}real_server 11.0.1.32 80 {weight 1        inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}
}

lvs02-34

[root@lvs02-34 ~]# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 31priority 99advert_int 1authentication {auth_type PASSauth_pass abcd}virtual_ipaddress {11.0.1.29}
}vrrp_instance VI_2 {state MASTERinterface ens33virtual_router_id 41priority 100advert_int 1authentication {auth_type PASSauth_pass abcd}virtual_ipaddress {11.0.1.30}
}virtual_server 11.0.1.29 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 11.0.1.31 80 {weight 1inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}real_server 11.0.1.32 80 {weight 1inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}
}virtual_server 11.0.1.30 80 {delay_loop 6lb_algo rrlb_kind DRprotocol TCPreal_server 11.0.1.31 80 {weight 1inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}real_server 11.0.1.32 80 {weight 1inhibit_on_failure            TCP_CHECK {            connect_timeout 3            nb_get_retry 2            delay_before_retry 1            connect_port 80            }}
}

3.2 开启keepalived服务

查看lvs01网卡信息

查看lvs02网卡信息

四、测试

4.1 测试访问VIP

4.2 模拟lvs01宕机

模拟lvs01宕机,关闭lvs1的keepalived

lvs02网卡信息

访问测试,两个虚拟VIP仍然可以正常使用,依旧可以正常访问nginx01、nginx02,,轮询方式仍然正常工作,注意每次刷新前都须有清除cookie记录

重启lvs01的keepalived,虚拟VIP11.0.1.29重新漂移回lvs01(11.0.1.33)

模拟lvs02宕机同理,不再重复实验。

参考文档:

(2)LVS+Keepalived+nginx高可用负载均衡架构原理及配置_51CTO博客_keepalived nginx负载均衡配置

keepalived+lvs-dr+nginx双主模型-CSDN博客

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

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

相关文章

oracle 19c容器数据库data dump数据泵传输数据(2)---11g导19c

目录 1.在11gnon-cdb数据库中创建测试用户 2.在19cCDB容器数据库中新建pdb2 3.执行命令导出 4.执行命令导入 Exporting from a Non-CDB and Importing into a PDB 我們要記住一点:如果是全库导出导入的话,目标数据库没有的表空间我们要事先创建&#…

HarmonyOS@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

Observed装饰器和ObjectLink装饰器:嵌套类对象属性变化 上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数…

应用在LCD显示器电源插头里的氮化镓(GaN)MTC-65W1C

LCD(Liquid Crystal Display)显示器是利用液晶显示技术来进行图像表现的显示装置,从液晶显示器的结构来看,无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。LCD显示器按照控制方式不同可分…

【gpt4 8k 免费使用】Coze 是一款用来开发新一代 AI Chat Bot 的应用编辑平台

Coze 快速开始 | Coze Welcome to Coze Coze 是什么? Coze 是一款用来开发新一代 AI Chat Bot 的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的 Chat Bot,并将其发布到各类社交平台和通讯软件上。…

2022-ECCV-Explaining Deepfake Detection by Analysing Image Matching

一、研究背景 1.大量工作将深度伪造检测作为一个二分类任务并取得了良好的性能。 2.理解模型如何在二分类标签的监督下学习伪造相关特征仍难是个艰巨的任务。 3.视觉概念:具有语义的人脸区域,如嘴、鼻子、眼睛。 二、研究目标 1.验证假设,并…

Qt框架学习 --- CTK

系列文章目录 文章目录 系列文章目录前言一、准备阶段二、使用介绍1.核心思想2.源码2.1.框架部分资源目录树2.2.框架部分源码2.3.插件部分资源目录树2.4.插件部分源码 3.文件结构4.运行效果 总结 前言 随着开发的深入,CTK框架还是要关注一下。了解CTK还是有必要的。…

陶瓷碗口缺口检测-图像获取与图像复原

图像获取 在陶瓷产品传送带上安装数据采集设备,如工业摄像头,进行图像数据采集。为提高陶瓷的检测精度,同时考虑到开发成本等问题采用高精度的CMOS工业摄像头进行数据采集。对图像进行灰度化处理, 图a为采集到的原彩色图像&#…

如何使用提示压缩来削减 RAG 80% 成本

每日推荐一篇专注于解决实际问题的外文,精准翻译并深入解读其要点,助力读者培养实际问题解决和代码动手的能力。 欢迎关注公众号(NLP Research) 原文标题:How to Cut RAG Costs by 80% Using Prompt Compression 原文地址:https://medium.com/towards-data-science/how…

Linux文件系统的层次结构、每个目录的含义、文件属性以及文件中第一列的第一个字符的含义

1.Linux文件系统的层次结构 在Linux操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的导致的树状结构: 5.Linux系统的目录解析 (1)/bin bin是Binary的缩写,这个目录存放着最经常使用的命令。 &#x…

UIUC CS241 讲义:众包系统编程书

原文:angrave/SystemProgramming 译者:飞龙 协议:CC BY-NC-SA 4.0 欢迎来到 Angrave 的众包系统编程维基书!这个维基是由伊利诺伊大学的学生和教师共同建立的,是伊利诺伊大学 CS 的 Lawrence Angrave 的众包创作实验。…

C# FreeSql使用,基于Sqlite的DB Frist和Code First测试

文章目录 前言FreeSql 简单连接数据库服务不存在没装FreeSql.All装了FreeSql.All安装包选择 DBFirst安装命令行生成器生成Bat创建脚本 基于Sqlite的Code Frist文件夹自动导出到Debug目录Sqlite 数据库安装和创建Sqlite连接数据库自动增列增表测试增列删列改列名同名列改属性 Co…

基于Vue组合式API的实用工具集

简介 今天,给大家分享一个很实用的工具库 VueUse,它是基于 Vue Composition Api,也就是组合式API。支持在Vue2和Vue3项目中进行使用,据说是目前世界上Star最高的同类型库之一。 图片 官方地址:https://vueuse.org/ 中文地址:https://www.vueusejs.com/ github:https…