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

  • 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.mzph.cn/bicheng/41186.shtml

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

相关文章

后端学习(一)

添加数据库包: 数据库连接时 发生错误: 解决方式: SqlConnection conn new SqlConnection("serverlocalhost;databaseMyBBSDb;uidsa;pwd123456;Encryptfalse;") ;conn.Open();SqlCommand cmd new SqlCommand("SELECT * FROM…

WAIC上官宣!大模型语料提取工具MinerU正式发布,开源免费“敲”好用

7月4日,2024 WAIC科学前沿全体会议在上海世博中心红厅隆重举行。上海人工智能实验室与商汤科技联合香港中文大学和复旦大学正式发布新一代大语言模型书⽣浦语2.5(InternLM2.5),同时全链条工具体系迎来重磅升级,对于大模…

Android 四大组件

1. Activity 应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件,也可以监听并对用户的事件做出响应。 Activity之间通过Intent进行通信,在Intent 的描述结构中,有两个最重要的部分:动…

Java跳出循环的四种方式

1、continue,break,return continue:跳出当前层循环的当前语句,执行当前层循环的下一条语句。   continue标签 break:跳出当前层循环。 break标签:多层循环时,跳到具体某层循环。 return:结束所有循环…

基于python 的动态虚拟主机

将自己电脑上的Python脚本文件上传到虚拟机/var/www/cgi-bin/目录下 [rootlocalhost conf.d]# cd /var/www/cgi-bin/ [rootlocalhost cgi-bin]# rz -E rz waiting to receive.编辑vhost.conf配置文件 [rootlocalhost conf.d]# vim vhost.conf<virtualhost 192.168.209.140…

树形结构C语言的实现

一.什么是树&#xff1a; 树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构&#xff0c;所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构&#xff1a;一棵树可以简单的表示为根&#xff0c;左子树&#xff0c;右子树。左子树…

平替向日葵:Windows远程桌面+动态IP获取器

对于需要远程办公的人员来说&#xff0c;向日葵是一个操作简便的选择&#xff0c;但其免费版功能受限&#xff0c;且由于数据需经过向日葵服务器转发&#xff0c;安全性也无法得到完全保障。为此&#xff0c;以下提供一个更为简单且免费的替代方案&#xff1a; 使用Windows自带…

threejs 微信小程序原生版本的使用 obj模型的加载

直接上代码&#xff0c; <canvas class"webgl" type"webgl" id"gl" bindtouchstart"onTX" bindtouchend"onTX" bindtouchmove"onTX" style"width:100vw;height:90vh"></canvas> const co…

从0到1构建渠道运营体系:实战案例与策略指南

引言 在当今竞争激烈的市场环境中&#xff0c;有效的渠道运营是企业实现产品或服务快速触达目标用户、提升市场份额的关键。从零开始构建一个高效的渠道运营体系&#xff0c;不仅需要深思熟虑的策略规划&#xff0c;还需要灵活应变的实战操作。本文将结合实战案例&#xff0c;…

react native中使用@react-navigation/native进行自定义头部

react native中使用react-navigation/native进行自定义头部 效果示例图实例代码 效果示例图 实例代码 /* eslint-disable react-native/no-inline-styles */ /* eslint-disable react/no-unstable-nested-components */ import React, { useLayoutEffect } from react; import…

七、Linux二进制安装Redis集群

目录 七、Linux二进制安装Redis集群1 安装Redis所需依赖2 单机安装Redis&#xff08;7.2.4&#xff09;2.1 下载Redis2.2 安装Redis 3 分布式部署模式&#xff08;Redis Cluster&#xff09;3.1 分布式部署模式的配置文件3.2创建集群 4 主从复制模式&#xff08;Redis Sentinel…

鼠标自动点击器怎么用?鼠标连点器入门教程!

鼠标自动点击器是适用于Windows电脑的自动执行鼠标点击操作的工具&#xff0c;主要用于模拟鼠标点击操作&#xff0c;实现鼠标高速点击的操作。通过模拟鼠标点击&#xff0c;可以在用户设定的位置、频率和次数下自动执行点击动作。 鼠标自动点击器主要的应用场景&#xff1a; …

Wing FTP Server

文章目录 1.Wing FTP Server简介1.1主要特点1.2使用教程 2.高级用法2.1Lua脚本,案例1 1.Wing FTP Server简介 Wing FTP Server&#xff0c;是一个专业的跨平台FTP服务器端&#xff0c;它拥有不错的速度、可靠性和一个友好的配置界面。它除了能提供FTP的基本服务功能以外&#…

当心!不要在SpringBoot中再犯这样严重的错误

1. 简介 在Spring Boot中&#xff0c;Configuration注解用于声明配置类&#xff0c;以定义和注册Bean对象。这些Bean对象可以是普通的业务组件&#xff0c;也可以是特殊的处理器&#xff0c;如BeanPostProcessor或BeanFactoryPostProcessor&#xff0c;用于在Spring容器中对其…

比 PIP 快 100 倍的安装工具

uv 是一个由 Rust 开发的 pip 工具&#xff0c;比 pip 快 100 倍&#xff0c;难以置信&#xff0c;不过真的是快太多了。 安装 在 Mac 上直接通过 brew install uv 安装即可。 venv 创建运行环境&#xff0c;默认当前目录下 .venv uv venv 依赖安装 uv pip install -r re…

AGI|Transformer自注意力机制超全扫盲攻略,建议收藏!

一、前言 2017年&#xff0c;谷歌团队推出一篇神经网络的论文&#xff0c;首次提出将“自注意力”机制引入深度学习中&#xff0c;这一机制可以根据输入数据各部分重要性的不同而分配不同的权重。当ChatGPT震惊世人时&#xff0c;Transformer也随之进入大众视野。一夜之间&…

第三届图像处理、目标检测与跟踪国际学术会议(IPODT 2024,8月9-11)

第三届图像处理、目标检测与跟踪国际学术会议&#xff08;IPODT 2024&#xff09;将于2024年8月9-11日在中国南京召开。 本次会议旨在为全球的研究人员、工程师、学者和业界专家提供一个展示和讨论图像处理、目标检测与跟踪最新进展的平台&#xff0c;促进这些领域的科研与技术…

VPSA制氧设备在不同行业的应用解析

VPSA制氧设备以其独特的吸附原理&#xff0c;能够在穿透大气压的条件下&#xff0c;通过专用的分子筛选择性吸附空气中的氮气、二氧化碳和水等杂质&#xff0c;从而制得纯度较高的氧气。本文将探讨VPSA制氧设备在不同行业中的应用及其重要性。 一、钢铁行业 在钢铁行业中&#…

【自组织竞争网络】自组织竞争网络进行分类的一个小案例

【自组织竞争网络】自组织竞争网络进行分类的一个小案例 注&#xff1a;本文仅作为自己的学习记录以备以后复习查阅 一 概述 自组织神经网络可以通过对客观事件的重复分析学习该事件的内在规律&#xff0c;并对具有类似/共同特征的新事物进行分类&#xff0c;它的基本思想类似…

vue3中pinia使用持久化管理

安装插件 npm install pinia pinia-plugin-persistpinia进行注册 创建index.ts import { createPinia } from pinia; //对外暴露大仓库 export default createPinia(); 在mian.ts //引入pinpa import { createApp } from vue //引入根组件 import App from ./App.vue const…