部署LVS+keepalived做网站的高可用,高负载。

news2025/2/23 12:44:49
  • LVS+keepalived

    • keepalived背景

      • 针对LVS的辅助工具,主要提供故障切换与健康检查。

      • 工作场景:作为调度器的双机热备,以及节点服务器的健康检查以及故障切换(删除条目)。

      • 借鉴了VRRP协议来实现高可用。

    • keepalived部署

      • 拓扑

        • 两台调度器之间实现高可用并实现对web服务器的健康状态检查,web服务器之间做一个负载均衡。

      • 两台调度器的配置

        • 准备前奏

          • 添加或关闭防火墙,内核安全机制也要关闭

          • 关闭NetworkManager

            • 该服务如果不关闭,漂移IP无法进行漂移

        • 安装keepalived并进行配置

          • 安装后先设置为开机自启

            • systemctl disable keepalived

          • 拷贝配置文件:在/etc/keepalived/keepalived

          • 配置文件详解

            • 全局配置部分

              • global_defs {

              • notification_email {

                • 该模块表示当keep发生切换操作后需要发送Email通知,以及发送给哪些邮件地址

              • acassen@firewall.loc

                • 具体的邮件地址,每行一个

              • failover@firewall.loc

              • sysadmin@firewall.loc

              • }

              • notification_email_from Alexandre.Cassen@firewall.loc

                • 该行定义了发送警报邮件的发送者是谁(发件人)

              • smtp_server 192.168.200.1

                • 表示可以用那台服务器的邮件服务发送邮件,通常可以使用127.0.0.1也就是本机提供该服务。

              • smtp_connect_timeout 30

                • 连接stmp服务的超时时间

              • router_id LVS_DEVEL

                • 机器标识:区分不同服务器的标识,对实际的服务的运行不产生影响,邮件服务快速定位

              • vrrp_skip_check_adv_addr

                • 不对master的宣告地址做检查,宽松的运行keepalived

              • vrrp_strict

                • 启用该项是除非恰当设置网络,否则不允许单播通信。

              • vrrp_garp_interval 0

                • 定期宣告IP地址所有权,当设置为0时仅在切换后做宣告

              • vrrp_gna_interval 0

              • }

            • vrrp实例部分

              • vrrp_instance VI_1 {

                • 实例名称,一个服务器可以有多个实例(应用场景)后面会写。

              • state MASTER

                • 确定初始状态的角色

                  • 在vrrp的选举循环中的init位置

              • interface eth0

                • 承载VIP的网卡,以自己为准

              • virtual_router_id 51

                • 每一个实例都必须用相同的VRID才能加入到同一个热备组。

              • priority 100

                • 因为VRRP采用优先级做选举master依据范围(0~255)0保留,255(IP地址拥有者)

              • advert_int 1

                • master的宣告报文间隔,以秒为单位(告诉其他backup)master还活着。

              • authentication {

                • 当其他的实例想要加入该热备组需要进行密码认证。

              • auth_type PASS

              • auth_pass 1111

              • }

              • virtual_ipaddress {

                • 虚拟VIP地址:每一个虚拟vip就代表着一个群集

              • 192.168.200.16

              • 192.168.200.17

              • 192.168.200.18

              • }

              • }

            • 虚拟服务器部分

              • virtual_server 192.168.200.100 443 {

                • 与实例中的VIP对应,是一个群集的开始

              • delay_loop 6

                • 健康检查的时间间隔

              • lb_algo rr

                • 调度算法

                  • rr|wrr|lc|wlc|lblc|sh|dh 

              • lb_kind NAT

                • 工作模式

                  • DR TUN NET

              • persistence_timeout 50

                • 持久超时(会话保持,在50秒内来自同一个IP的请求会被转发到同一个服务器上)

              • protocol TCP

                • 健康检查用的协议

              • real_server 192.168.201.100 443 {

                • 后端真实服务器的IP地址以及端口

              • weight 1

                • 该真实服务器的权重

              • SSL_GET {

                • 健康检查的方法

                  • 5:SMTP_CHECK:用来检测邮件服务的smtp的
              • url {

              • path /

              • digest ff20ad2481f97b1754ef3e12ecd3a9cc

              • }

              • url {

              • path /mrtg/

              • digest 9b3a0c85a887a256d6939da88aabd8cd

              • }

              • connect_port 80

                • 健康检查的端口

              • connect_timeout 3

                • 健康检查的连接超时时间

              • nb_get_retry 3

                • 超时后重试的次数

              • delay_before_retry 3

                • 重试次数之间的间隔

              • }

              • }

              • }

          • 配置文件中需要改动的地方

            • #vrrp_strict

              • 将不允许单播注释

            • 根据需要可以设为不同的标识

              • router_id LVS_01

            • state MASTER

              • 根据拓扑需求设置为不同的角色

            • interface ens33

              • 根据实际需要选择合适的网卡承载VIP

            • virtual_router_id 51

              • 确保同一个热备组中的实例的id一致

            • priority 100

              • 优先级越高越优先

            • virtual_ipaddress { 192.168.10.172 }

              • 选择虚拟ip

            • virtual_server 192.168.10.172 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 ! persistence_timeout 50 protocol TCP real_server 192.168.10.103 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }

              • 修改成合适的IP地址,选择健康检查方式,将会话保持功能关闭方便后期测试。

          • 在调度器内核中加入相关参数

            • net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0

              • 关闭内核的重定向功能,

          • 最后开启keepalived

          • 从服务器也要进行相关设置

          • web服务器处理

            • 两台服务器分别用lo:0去承载VIP,并且在内核中添加相关参数。

              • net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2

            • 最后在web网页文档目录下设置相关参数进行测试,分别down掉调度器与web服务器看是否能正常访问。

复制全部到xmind即可形成条理性笔记,图片复制不过去请单独粘贴! 

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

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

相关文章

商贸物流大脑:大模型+数据要素赋能智慧物流数据平台

项目背景与意义 物流行业快速发展,数据量急剧增加,随着电子商务、智能制造等领域的快速发展,物流行业面领着前所未有的挑战和机遇,如效率低下、资源配置不均、信息不透明等问题。随着全球化和电子商务的快速发展,数据…

MAX98357、MAX98357A、MAX98357B小巧、低成本、PCM D类IIS放大器,具有AB类性能中文说明规格书

前言: MAX98357A支持标准I2S数据,MAX98357B支持左对齐数字音频数据。两个版本均支持8通道TDM音频数据。 IIS数字功放MAX98357开发板/评估系统 MAX98357 WLP-9(1.347x1.437mm)封装的外观和丝印AKM MAX98357 TQFN-16-EP(3x3mm)封装的外观和丝印AKK 引脚说…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(7)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音助…

Towards Accurate and Robust Architectures via Neural Architecture Search

基于网络架构搜索的准确性与鲁棒性结构研究 论文链接:https://arxiv.org/abs/2405.05502 项目链接:未开源 Abstract 为了保护深度神经网络免受对抗性攻击,对抗性训练因其有效性而受到越来越多的关注。然而,对抗训练的准确性和鲁…

高级计算机体系结构--三次作业

homework1homework2homework3 homework1 简述 当代主流的并行机系统。 【答】 当代并行机系统主要有: 1) 并行向量机(PVP) 2) 对称多处理机(SMP) 3) 大规模并行处理机&#xf…

【Nvidia+AI相机】涂布视觉检测方案专注提高锂电池质量把控标准

锂电池单元的质量在多个生产制造领域都至关重要,特别是在新能源汽车、高端消费电子等行业。这些领域的产品高度依赖锂电池提供持续、稳定的能量供应。优质的锂电池单元不仅能提升产品的性能和用户体验,还能确保使用安全。因此,保证锂电池单元…

47.HOOK引擎优化支持CALL与JMP位置做HOOK

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 上一个内容:46.修复HOOK对代码造成的破坏 以 46.修复HOOK对代码造成的破坏 它的代码为基础进行修改 优化的是让引擎支持从短跳JMP(E9&…

nginx配置尝试

from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.responses import JSONResponse, FileResponse, HTMLResponse import logging import os from datetime import datetime import uvicorn# 初始化日志 logging.basicConfig(filenamefile_server.lo…

机器学习之保存与加载

前言 模型的数据需要存储和加载,这节介绍存储和加载的方式方法。 存和加载模型权重 保存模型使用save_checkpoint接口,传入网络和指定的保存路径,要加载模型权重,需要先创建相同模型的实例,然后使用load_checkpoint…

Redis基础教程(十三):Redis lua脚本

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)

Vueuse 是一个功能强大的 Vue.js 生态系统工具库,提供了可重用的组件和函数,帮助开发者更轻松地构建复杂的应用程序。 官网 :https://vueuse.org/core/useWindowScroll/ 安装 VueUse npm i vueuse/core vueuse/components(可选&a…

VideoAgent——使用大规模语言模型作为代理来理解长视频

概述 论文地址:https://arxiv.org/pdf/2403.10517 本研究引入了一个新颖的基于代理的系统,名为 VideoAgent。该系统以大规模语言模型为核心,负责识别关键信息以回答问题和编辑视频。VideoAgent 在具有挑战性的 EgoSchema 和 NExT-QA 基准上进…

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑,如果没有认真去查看随机结果是否符合预期,还真不容易发现。 为了方便讲述,写了如下示例代码。类cl_a里有个随机变量aa,初始值为222。在module top里对类cl_a例化并进行约…

释放区块链数据科学的力量

如今,区块链技术和数据科学是两项最先进、最不可预测的技术。数据科学已被证明可以使用区块链技术作为原始数据源来了解有关系统运行的信息。 通过将区块链技术与数据科学相结合,软件开发、金融和其他领域的创造性改进已经成为可能。 在本文中&#xf…

【HTML】-解决页面内容无法选择、复制问题

目录 1、网页内容无法选中 1.1、问题原因 1.2、解决脚本 1.2.1、开启控制台窗口 1.2.2、执行脚本命令 2、内容复制弹出阻止框 2.2、解决脚本 1、网页内容无法选中 1.1、问题原因 今天在访问某一网站平台,需要将内容进行选择、复制时发现不可使用。 在使用…

MATLAB-分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类)

MATLAB-分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类) 分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类…

[Vite]Vite插件生命周期了解

[Vite]Vite插件生命周期了解 Chunk和Bundle的概念 Chunk: 在 Vite 中,chunk 通常指的是应用程序中的一个代码片段,它是通过 Rollup 或其他打包工具在构建过程中生成的。每个 chunk 通常包含应用程序的一部分逻辑,可能是一个路由视…

公务员考试、事业编考试、教师资格证、面试、K12资料、电子书

点击上方△腾阳 关注 作者 l 腾阳 转载请联系授权 你好,我是腾阳。 在这个自媒体的海洋里,我曾是一只迷失方向的小鸟,多次尝试飞翔却总是跌跌撞撞。 但每一次跌倒,都让我更坚定地相信,只要不放弃,总…

---java KMP算法---

对于在一段字符串中查找一段字符串,如果用数组遍历的方法那就效率低下,所以产生了效率更高的KMP算法 KMP算法查只需要遍历一次字符串就可以找出第一次出现的目标字符串 要学的话建议区b站看视频,学着由视频学者比较容易 我这里就提供下我实…

html的作业

目录 作业题目 1.用户注册 A图 B代码 2.工商银行电子汇款单 A图 B代码 3.李白诗词 A图 B代码 4.豆瓣电影 A图 B代码 学习产出&#xff1a; 作业题目 1.用户注册 A图 B代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset&qu…