keepalived双机热备(LVS+keepalived)实验笔记

目录

前提准备:

keepalived1:

keepalived2:

web1:

web2:

keepalived介绍

功能特点

工作原理

应用场景


前提准备:

  1. 准备4台centos,其中两台为keepalived,两台为web
  2. keepalived1:192.168.180.62,gw(网关):192.168.180.250,安装keepalived+ipvsadm
  3. keepalived2:192.168.180.110,gw(网关):192.168.180.250, 安装keepalived+ipvsadm
  4. web1:192.168.180.120,gw(网关):192.168.180.250,安装httpd
  5. web2:192.168.180.130,gw(网关):192.168.180.250,安装httpd
  6. 有gw(网关)标识的,需要去修改网关
  7. 关闭所有防火墙
  8. 可以使用本地yum源本地yum源icon-default.png?t=O83Ahttps://blog.csdn.net/m0_68472908/article/details/143857709?spm=1001.2014.3001.5501

keepalived1

1. 安装软件

yum install -y keepalived ipvsadm

2. 关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

3. 配置主服务器

vim /etc/keepalived/keepalived.conf

4. 开启keepalived

systemctl start keepalived.service

5. 配置负载分担策略

ipvsadm -Cipvsadm -A -t 192.168.180.250:80 -s rripvsadm -a -t 192.168.180.250:80 -r 192.168.180.120 -g -w 1ipvsadm -a -t 192.168.180.250:80 -r 192.168.180.130 -g -w 1ipvsadm-savesystemctl enable ipvsadm

6. 配置vip

cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens33:0vim ifcfg-ens33:0

ifup ens33:0systemctl restart network

7. 调整/proc响应参数

vim /etc/sysctl.confnet.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0net.ipv4.conf.ens33.send_redirects = 0

#刷新
sysctl -p

keepalived2

1. 安装软件

yum install -y keepalived ipvsadm

2. 关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

3. 配置备用服务器-从主上复制过来,修改参数

scp 192.168.180.62:/etc/keepalived/keepalived.conf  /etc/keepalived/

4. 开启

systemctl start keepalived

5. 查看ipvsadm有没有同步

ipvsadm -ln

systemctl enable ipvsadm

6. 从主上同步vip配置

scp 192.168.180.62:/etc/sysconfig/network-scripts/ifcfg-ens33:0 /etc/sysconfig/network-scripts/

7. 从主上同步/proc响应参数

scp 192.168.180.62:/etc/sysctl.conf /etc/

#刷新
sysctl -p

web1

1. 安装软件

yum install -y httpd

2. 关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

3. 配置vip

cd /etc/sysconfig/network-scripts/cp ifcfg-lo ifcfg-lo:0vim ifcfg-lo:0

ifup lo:0systemctl restart network

4. 配置路由

route add -host 192.168.180.250 dev lo:0vim /etc/rc.local

systemctl restart network

5. 配置/proc响应参数

vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.default.arp_ignore = 1net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2

6. 创建测试页面

echo "11111111111" > /var/www/html/index.htmlsystemctl start httpd

web2

1. 安装软件

yum install -y httpd

2. 关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

3. 从主上同步vip

scp 192.168.180.120:/etc/sysconfig/network-scripts/ifcfg-lo:0 /etc/sysconfig/network-scripts/ifup lo:0

4. 从主上同步路由

route add -host 192.168.180.250 dev lo:0scp 192.168.180.120:/etc/rc.local /etc/

systemctl restart network

5. 从主上同步/proc响应参数

scp 192.168.180.120:/etc/sysctl.conf /etc/sysctl -p

6. 创建测试页面

echo "2222222222222" > /var/www/html/index.htmlsystemctl start httpd

7. 在keepalived上访问测试

8. 在真机上访问测试


keepalived介绍

Keepalived 是一款基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)的开源软件,主要用于实现服务器的高可用性(High Availability,HA)和负载均衡

功能特点
  • 高可用性实现:通过 VRRP 协议,Keepalived 可以监控服务器的状态。当主服务器出现故障时,它能自动将服务切换到备用服务器上,确保服务的连续性,减少停机时间。
  • 健康检查机制:支持多种健康检查方式,如通过发送 HTTP 请求、执行脚本等方式来检测服务器的运行状态。如果服务器出现异常,Keepalived 会及时将其从服务池中移除,避免将请求发送到故障服务器上。
  • 负载均衡功能:结合 Linux 虚拟服务器(Linux Virtual Server,LVS)技术,Keepalived 可以实现基于 IP 的负载均衡,将用户请求均匀地分发到多个服务器上,提高系统的整体性能和处理能力。
  • 可扩展性和灵活性:支持多种配置选项和参数调整,可以根据不同的应用场景和需求进行定制化配置。同时,它还可以与其他开源软件和工具集成,如 Nginx、Haproxy 等,进一步扩展其功能。
工作原理
  • VRRP 协议基础:VRRP 协议通过在一组路由器之间创建一个虚拟路由器来实现高可用性。在这个虚拟路由器中,有一个主路由器负责处理所有的网络流量,其他路由器作为备用路由器。当主路由器出现故障时,备用路由器会通过选举机制选出一个新的主路由器,继续承担网络流量的处理任务。
  • Keepalived 的工作流程:Keepalived 在服务器上运行后,会根据配置文件中的设置,定期发送 VRRP 通告消息来宣告自己的存在和状态。其他运行 Keepalived 的服务器会接收这些通告消息,并根据优先级等参数来确定当前的主服务器。同时,Keepalived 还会监控服务器的健康状态,如果发现主服务器出现故障,会立即触发选举过程,将备用服务器提升为主服务器,确保服务的不间断运行。
应用场景
  • Web 服务高可用:在 Web 应用中,Keepalived 可以确保 Web 服务器集群的高可用性。当一台 Web 服务器出现故障时,Keepalived 会自动将用户请求切换到其他正常的服务器上,保证网站的正常访问。
  • 数据库服务高可用:对于数据库服务器,Keepalived 可以实现主备切换。当主数据库服务器出现故障时,备用数据库服务器会自动接管服务,确保数据库的连续性和数据的一致性。
  • 邮件服务高可用:在邮件系统中,Keepalived 可以保证邮件服务器的高可用性。当主邮件服务器出现故障时,备用邮件服务器会及时接替工作,确保邮件的正常收发。

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

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

相关文章

CentOS 7 下 Nginx 的详细安装与配置

1、安装方式 1.1、通过编译方式安装 下载Nginx1.16.1的安装包 https://nginx.org/download/nginx-1.16.1.tar.gz 下载后上传至/home目录下。 1.2、通过yum方式安装 这种方式安装更简单。 2、通过编译源码包安装Nginx 2.1、安装必要依赖 sudo yum -y install gcc gcc-c sudo…

八股学习 Redis

八股学习 Redis 常见场景常见问题问题1、2示例场景缓存穿透解决方案一解决方案二 问题3示例场景缓存击穿解决方案 问题4示例场景缓存雪崩解决方案 问题5示例场景双写一致性强一致方案允许延时一致方案 问题6RDB方式AOF方式两种方式对比 问题7数据过期策略惰性删除定期删除 问题…

Python自学 - 标准库介绍

<< 返回目录 1 Python自学 - 标准库介绍 标准库是安装Python时自带的一些模块集合&#xff0c;集成了丰富的功能&#xff0c;避免用户反复造轮子&#xff0c;这极大的提高了生产效率&#xff01; 1.1 几种常用的标准库 1.1.1 os 模块 提供了与操作系统交互的接口&…

Flutter中Get.snackbar和Get.dialog关闭冲突问题记录

背景&#xff1a; 在使用GetX框架时&#xff0c;同时使用了Get.snackbar提示框和Get.dialog加载框&#xff0c;当这两个widget同时存在时&#xff0c;Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释&#xff1a; 之所以会产生冲突&#xff0c;是因为Get.snackbar在关…

C++ 在线编译软件介绍、杭电OJ、北大OJ、力扣OJ

在线编译软件的话&#xff0c;可见下&#xff1a; https://www.jyshare.com/compile/12/ 杭州电子科技大学开发的一个免费的写代码地址 &#xff0c;杭电OJ https://bestcoder.hdu.edu.cn/ 北大OJ http://poj.org/ 力扣OJ 力扣 (LeetCode) 全球极客挚爱的技术成长平台

【全套】基于机器学习的印度森林火灾发生概率的分析与预测

【私信送源码文档】基于机器学习的印度森林火灾发生概率的分析与预测 对应的ppt 摘 要 随着全球气候变化的不断加剧&#xff0c;火灾的频发和规模逐渐增大&#xff0c;成为备受关注的问题。本文旨在提高对火灾发生概率的准确性&#xff0c;为火灾的预防和管理提供科学支持。在…

mysql性能压测

软件安装 安装sysbench yum install epel-release -y yum install sysbench sysbench --version 创建测试库 CREATE DATABASE demobench CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 创建测试表&#xff08;不需要&#xff0c;执行准备阶段的命令即可&#xff09;…

Python的秘密基地--[章节11] Python 性能优化与多线程编程

第11章&#xff1a;Python 性能优化与多线程编程 在开发复杂系统时&#xff0c;性能优化和并发编程是不可忽视的重点。Python 提供了多种工具和技术用于优化代码性能&#xff0c;并通过多线程、多进程等方式实现并发处理。本章将探讨如何在 Python 中提升性能&#xff0c;并实…

vite功能之---TypeScript

Vite 天然支持引入 .ts 文件 意思是不需要额外配置&#xff0c;vite内置了对.ts文件的转译 vite仅执行转译 请注意&#xff0c;Vite 仅执行 .ts 文件的转译工作&#xff0c;并不执行 任何类型检查。并假定类型检查已经被你的 IDE 或构建过程处理了。Vite 之所以不把类型检查…

RabbitMQ中有哪几种交换机类型?

大家好&#xff0c;我是锋哥。今天分享关于【RabbitMQ中有哪几种交换机类型&#xff1f;】面试题。希望对大家有帮助&#xff1b; RabbitMQ中有哪几种交换机类型&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中&#xff0c;交换机&#xf…

11-1.Android 项目结构 - androidTest 包与 test 包(单元测试与仪器化测试)

androidTest 包与 test 包 在 Android 项目中&#xff0c;androidTest 包与 test 包用于存放不同类型的测试代码的 1、测试类型 &#xff08;1&#xff09;androidTest 包 主要用于存放单元测试&#xff08;Unit Tests&#xff09;代码 单元测试是针对应用程序中的独立模块…

HTML拖拽功能(纯html5+JS实现)

1、HTML拖拽--单元行拖动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…

PHP 字符串

PHP 字符串 引言 在 PHP 中&#xff0c;字符串是一种非常基础且重要的数据类型。字符串可以包含字母、数字、标点符号以及特殊字符。PHP 提供了丰富的字符串函数&#xff0c;使得字符串操作变得简单而高效。本文将详细介绍 PHP 中字符串的常用操作&#xff0c;包括字符串的创…

SpringMVC复习笔记

文章目录 SpringMVC 概念和基本使用SpringMVC 简介SpringMVC 核心组件和调用流程SpringMVC 基本使用第一步&#xff1a;导入依赖第二步&#xff1a;Controller 层开发第三步&#xff1a;SpringMVC 配置类配置核心组件第四步&#xff1a;SpringMVC 环境搭建第五步&#xff1a;部…

AR 在高校实验室安全教育中的应用

AR应用APP可以内置实验室安全功能介绍&#xff0c;学习并考试&#xff08;为满足教育部关于实验室人员准入条件&#xff09;&#xff0c;AR主模块。其中AR主模块应该包括图形标识码的扫描&#xff0c;生成相应模型&#xff0c;或者火灾、逃生等应急处置的路线及动画演示。考试采…

vscode离线安装插件--终极解决方案

目录 离线安装插件安装方法 vscode连接远程服务器中的docker远程连接python jupyter开发 离线安装插件 使用vscode开发过程中&#xff0c;有一些内网服务器没法连接外网&#xff0c;造成安装插件不方便&#xff0c;网络上很多文章提供了很多方法&#xff0c;比较常见的一种是&…

记录一次Android Studio的下载、安装、配置

目录 一、下载和安装 Android Studio 1、搜索下载Android studio ​2、下载成功后点击安装包进行安装&#xff1a; 3、这里不用打勾&#xff0c;直接点击安装 &#xff1a; 4、完成安装&#xff1a; 5、这里点击Cancel就可以了 6、接下来 7、点击自定义安装&#xff1a…

字节序 大端和小端

目录 什么是 大端存储和小端存储&#xff1f;为什么会有大小端转换问题如何检查自己电脑 是大端还是小端&#xff1f;大端小端处理函数使用位运算操作来手动转换大端和小端。使用标准库中的htonl和ntohl函数代码示例&#xff1a; 什么是 大端存储和小端存储&#xff1f; 大端模…

Kylin Linux V10 替换安装源,并在服务器上启用 EPEL 仓库

查看系统版本&#xff1a; cat /etc/os-releaseNAME"Kylin Linux Advanced Server" VERSION"V10 (Lance)" ID"kylin" VERSION_ID"V10" PRETTY_NAME"Kylin Linux Advanced Server V10 (Lance)" ANSI_COLOR"0;31"u…

可以用于分割字符串的方法(python)

一、str.split(sep,maxsplit)函数&#xff08;返回列表&#xff09; sep&#xff1a;分隔符 maxsplit&#xff1a;分割次数 a"Hello world" list1a.split(" ",1) print(list1) 结果&#xff1a; [Hello, world] 二、str.rsplit(sep,maxsplit)函数&…