Keepalived高可用配置服务器集群

news2024/11/15 7:35:58

前言

上章完成了通过nginx对服务器配置了负载均衡,保证了一个服务器宕机另一个服务器顶上,但是有一个问题出现了,如果nginx宕机了怎么办,这章会对这个问题进行讲解,配置集群来保证nginx宕机下一个顶上来,服务器一直能提供服务当一台服务器宕机的时候把从服务器切换为主,提供虚拟ip

一.什么是nginx 高可用

Nginx负载均衡示意图:

问题:当计算机A挂机,系统无法访问,如何保证系统的高可用?

搭建集群,增加备机,主机挂机,启用备机

问题:

  1. 主机备机服务器地址不一样,客户如何访问?

  2. 怎么检测服务器状态,确认服务器故障?

  3. 主机备机如何切换?

二.keepalived简介

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

2.1 为什么使用集群

  1. 防止单点故障;

  2. 负载均衡;

  3. 高并发(1.集群(增加服务器数量);2.线程;);

  4. 高可靠;

在两台nginx服务器上安装keepalived,如果一台服务器出故障,另外一台可以继续工作。

2.2 虚IP

Ip地址:计算机得唯一标识。

就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

169.254.233.222在这里叫做虚ip,有可能在第一台服务器上,也有可能在第二台服务器上。

2.3 作用

  1. 检测服务器状态;

  2. 如果服务状态异常,通知维护人员服务状态异常,进行人工维护;

  3. 讲当前服务器从集群中剔除

  4. 使用从机作为主服务器

三.  安装keepalived

3.1 下载

命令:

yum -y install keepalived

3.2 配置 

文件位置

点开这个文件 删除里面所有的内容

将下方内容复制进去

# 全局配置
global_defs { 
   #设置报警邮件地址,可以设置多个,可以不设置
   notification_email {
     2@qq.com
   }
   #发送通知邮件时邮件源地址
   notification_email_from 1@163.com   
   # 发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
   smtp_server smtp.163.com
   #连接smtp连接超时时间
   smtp_connection_timeout 30 
   #定义路由标识信息,相同局域网唯一,ip地址
   router_id 192.168.5.69
   script_user root
}

# 检测脚本
vrrp_script chk_http_port {
   # 脚本路径
   script "/opt/keepalived/nginx_check.sh"
   #(检测脚本执行的间隔,单位是秒)
   interval 2
   # 当检查失败后,将vrrp_instance的priority减小5
   weight -5
   # 连续监测失败3次,才认为真的健康检查失败。并调整优先级
   fall 3
   # 连续监测2次成功,就认为成功。但不调整优先级
   rise 2 
}


  
vrrp_instance VI_1 { 
    # 指定keepalived的角色,MASTER为主,BACKUP为备,大写
    state MASTER
    # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    interface ens33
    # 虚拟路由编号0-255,主、备机的 virtual_router_id 必须相同
    virtual_router_id 51
    # 主、备机取不同的优先级,主机值较大,备份机值较小
    priority 100
    # 检查间隔,默认为1s(vrrp组播周期秒数)
    advert_int 1
    #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    
    # 定义虚拟ip(VIP),可多设,每行一个
    virtual_ipaddress {         
        192.168.5.100
    } 
    
    # 执行检测脚本
    track_script{
        chk_http_port
    }
}

根据下方图片进行改动

 

3.3 创建脚本

跟着一步一步来

上面配置完保存之后还需要创建一个脚本

mkdir -p /opt/keepalived

cd /opt/keepalived/

touch nginx_check.sh

 

打开文件编辑脚本 

直接复制即可

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
    /opt/nginx/nginxserver/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
    then
        killall keepalived
    fi
fi

给这个脚本权限 

chmod 777 nginx_check.sh

 

到这里主nginx的keepalived已经配置好了,下面将这个服务器创立一个副本作为从nginx使用

四. 从服务器

1. 克隆服务器

过程略......

修改从服务器的ip地址,不可与主服务器一样

2.修改配置文件

4.2.1 找到文件

找到从服务器的keepalived.conf配置文件

4.2.2 修改配置文件 

 

五. 启动

1.首先启动上章已经配好的两个springboot项目

2.启动nginx

启动刚配好的两个服务器的nginx 

3.启动keepalived

4. 访问

刚才我们配的路径是192.168.5.100

所以在浏览器访问192.168.5.100

这样就配置完成了

5.测试

我们可以在FinalShell里面连接192.168.5.100 

自行ip addr 可以看到我们100服务器访问的其实是192.168.5.69服务器,这也做到了使用虚拟ip的操作

这里可以看到我们实际连接到的是69服务器

下面我们模拟一下nginx宕机,关掉69服务器

这时会直接断开连接 重新连接之后会发现服务器ip变为第二个了也就是配置的备服务器99

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

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

相关文章

【机器人学】7-3.六自由度机器人自干涉检测-圆柱体的旋转变换【附MATLAB代码】

前言 上一章确定了机械臂等效的圆柱体的上下圆心坐标,这篇文章将解决算法三个核心中的第二个核心: 一 根据机械臂的几何数据以及DH参数,确定机械臂等效的圆柱体的上下圆心坐标。 二 将一个圆柱体旋转到与坐标Z轴对齐,另一个圆柱…

华为机考笔试没有结果?

点击上方"互联网求职达人",选择"设为置顶or星标" 第一时间获取最实用的求职以及备考信息 华为机考笔试范围是什么?​https://mp.weixin.qq.com/s?__bizMzU2NjE0NjMxNg&mid2247483962&idx1&sn69b0b152dd8e7ebe9ddb356b…

livekit 环境搭建

目录 livekit介绍 搭建开发环境 goland编译 运行server 启动server 通过lk命令加入房间 通过web打开本地摄像头 通过goland调试livekit livekit介绍 livekit是一个开源的webrtc服务器,性能十分强大,房间管理、redis、信令业务、流媒体sfu都支…

PMP备考经验 | 如何做到一次考过3A?

一,直播课的学习 面对大量场景阅读题,且刷题也基本没原题的PMP考试,从报名的时候就知道临考刷题大法肯定是行不通的,也想把这个证好好学下去真的成为项目管理专家。 于是第一个周末的直播课两天跟随听课,认真做笔记&am…

数据结构——链表学习

数据结构初步了解 链表是数据结构的一部分,所以我想先理清数据结构的要点: 它们说:程序算法数据结构,在计算机中,把所有可以输入到计算机中能被计算机进行处理的符号的总称叫做数据。 数据结构包括两部分&#xff0…

美畅物联丨物联网平台的标准化之路:物模型设计的创新及应用

随着物联网(IoT)技术以前所未有的迅猛之势蓬勃发展,海量的物联网终端与应用纷纷接入,这不可避免地引发了数据与应用层面的异构化难题,进而形成了复杂且多变的碎片化问题。物联网感知数据因其具备多源异构的显著特性&am…

基于vue框架的病房管理系统设计与实现uilp1(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:患者,医护人员,患者病历,医院病房,住院信息,科室,病房预约,住院费用 开题报告内容 基于Vue框架的病房管理系统设计与实现开题报告 一、引言 随着医疗信息化建设的不断深入,病房管理作为医院日常运营的核心环节之一&#x…

VMware Workstation虚拟机 + 许可证密钥

VMware Workstation虚拟机 许可证密钥 VMware Workstation是什么?VMware简介VMware 安装VMware系统要求VMware 版本下载地址许可证序列码看这里 !!!!! VMware Workstation是什么? VMware简介 …

揭开容器的面纱:容器技术全景概述

随着云计算的快速发展,容器技术已经成为IT行业的重要组成部分。Docker作为一种领先的容器化技术,为应用程序的开发、部署和运行带来了革命性的变化。本篇文章将详细介绍容器技术的概念、发展历程及其在现代计算中的应用。通过对Docker的深入了解&#xf…

友思特方案 | 基于三维点云实现PCB装配螺丝视觉检测

导读 三维点云是完成精密化 PCB 检测的最新视觉技术。友思特 Saccde Vision 视觉扫描系统,采用先进的三维成像技术和算法输出直观点云图,进一步确保了PCB生产的可靠性与稳定性能。 在电子产品的生产过程中,PCB(Printed Circuit B…

streamlit+wordcloud使用pyinstaller打包遇到的一些坑

说明 相比常规的python程序打包,streamlit应用打包需要额外加一层壳,常规app.py应用运行直接使用 python app.py就可以运行程序了,但streamlit应用是需要通过streamlit命令来运行 streamlit app.py所以使用常规的pyinstaller app.py打包是…

阿里云服务器自带多少DDoS防护?小编为你详细揭秘!

大家好呀!今天小编来聊聊一个很多朋友都关心的问题:阿里云服务器自带多少DDoS防护?随着网络攻击手段的日益猖獗,DDoS攻击对企业业务的威胁越来越大,选择一个安全可靠的云服务器至关重要。阿里云作为国内领先的云计算服…

宝宝自闭症的表现与理解

自闭症,又称孤独症,是一种复杂的神经心理障碍,它影响患儿的脑部发展,并在社交沟通、兴趣和行为上表现出明显的异常。自闭症通常在幼儿期就有所体现,但很多时候,家长在宝宝一岁前后才会开始注意到这些异常表…

排序算法刷题笔记【牛客网】

排序算法刷题笔记【牛客网】 排序算法刷题记录,来自牛客网,主要是有些题目会去搜一下相关知识,这里就用来做笔记,类似错题本了。 会持续更新…… 其实就是把45前面的排好了,然后45从后往前比较。 45前面的排列&#xf…

高级问题解决查询搜索网址

1、世界上最大的技术问答网站,里面问题的种类很多,回答的质量也很高,当你在谷歌等搜索引擎没能得到满意的答案的时候,可以到Stack Overflow上看 2、Reddit是一个全球性的社交新闻网站和讨论平台,用户可以在这里分享、…

grafana可视化 安装及集成zabbix数据源详细教程

目录 grafana简介安装grafana安装示例汉化(选做)启动访问web界面 安装zabbix插件在线安装离线安装启用插件 配置zabbix数据源 grafana简介 Grafana是一个功能强大、灵活性高、易于使用的数据可视化工具,广泛应用于各种领域,包括I…

el-input-number,增加清空icon按钮,输入值居左(左对齐)、去除控制按钮

:controls"false"&#xff0c;不使用控制按钮&#xff1b; <div><span class"label">金额</span><divstyle"width: 100%;border: solid 1px rgba(0, 0, 0, 0.1); border-radius: 4px; display: flex;align-items: center;"…

比裁员更侮辱人的事发生了。。。

在这个快节奏的时代&#xff0c;职场如战场&#xff0c;每个人都在为了生存而奋斗。但你有没有遇到过这样的情况&#xff1a;工作量突然增加&#xff0c;薪水却纹丝不动&#xff1f; 最近某位网友爆料&#xff0c;他们公司裁掉两名员工&#xff0c;一个月薪一万七&#xff0c;…

解决npm下载依赖速度慢的问题

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

CC工具箱使用指南:【DAT转要素类】

一、简介 这是一个将特定的DAT文件批量转换为GDB点要素类的工具。 用记事本打开DAT文件&#xff0c;长这样&#xff1a; 数据比较简单&#xff0c;就是一些点坐标&#xff0c;一行一个点&#xff0c;包括XYZ三个坐标。 二、工具参数介绍 点击【定制2】组里的【DAT文件转要素…