运维学习————nginx3-keepalived及高可用nginx集群

news2024/11/13 11:03:30

目录

一、高可用nginx规划图

二、克隆一个nginx  

启动测试

​编辑 三、keepalived简介

四、安装配置keepalived保活nginx 

4.1、安装

​编辑 4.2、配置

4.2.1、主机配置(nginx1(主)配置)

 4.2.2、从机配置(nginx2(主)配置)

 4.2.3、编写检查nginx是否正常运行脚本(主备都需要有)

4.3、自动故障切换测试 

 故障切换测试


一、高可用nginx规划图

二、克隆一个nginx  

直接利用之前的nginx服务克隆一个,不用在搭建nginx了,并用远程连接链接

启动测试

 /usr/local/nginx/sbin/nginx

因为是克隆的,所以直接访问ip+端口,和之前负载均衡的访问一样

http://192.168.37.184:8088/index.jsp

 三、keepalived简介

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

      Keepalived 是一个用 C 语言编写的路由软件。这个项目的主要目标是为 Linux 系统和基于 Linux 的基础设施提供简单而强大的负载平衡和高可用性设施 。底层基于VRRP( Virtual Router Redundancy Protocol,简称VRRP)协议编写。VRRP作用:它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱

四、安装配置keepalived保活nginx 

4.1、安装

为了安装方便使用yum在线安装,不从官网下载安装包。

在nginx1和nginx2上都安装:

    yum  install  -y   keepalived

 4.2、配置

4.2.1、主机配置(nginx1(主)配置)

vim /etc/keepalived/keepalived.conf

使用下面的conf替换原先的 

:19  脚本位置   :32 网卡名称     :47   虚拟IP  (注意一定要和自己的网段对应,后面IP随便写,两台配置虚拟IP要一致)

! Configuration File for keepalived

global_defs {
   #唤醒邮箱配置
   notification_email {
     test@qq.com
   }
   notification_email_from test@qq.com
   smtp_server 127.0.0.1
   #配置邮件服务器链接超时时间
   smtp_connect_timeout 30
   #当前机子的字符串id
   router_id LVS_DEVEL
}

#vrrp脚本  名称必须和实例中的属性track_script中的值一致
vrrp_script track_nginx{
    #配置脚本路径
    script "/root/shell-script-dir/checknginx.sh"        
    #调用脚本的间隔时间 ,单位是秒
    interval  2
    #权重  调整优先级的权重  如果说执行脚本保活nginx失败  ,就会把优先级数值减去对应的权重
    weight 10

}

#vrrp的实例
vrrp_instance VI_1 {
  #服务器状态 
    state MASTER
    当前实例绑定的网卡接口
    interface ens33
  #虚拟路由id  主备必须相同
    virtual_router_id 51
  #取值 优先级 1-255    
    priority 100
  #主备心跳间隔时间 单位 s
    advert_int 1
  #认证  主备切换时  进行认证  主备必须相同
    authentication {
        auth_type PASS
        auth_pass 1111
    }
  #虚拟ip 配置LVS=IPVS  keepalived虚拟出来的ip  以后对外公布是虚拟ip
    virtual_ipaddress {
	#虚拟IP 必须和要保活的软件所在的主机的ip的网段一致
        192.168.37.37
    }
  #追踪脚本 
    track_script{
      track_nginx
    }
}

 4.2.2、从机配置(nginx2(从)配置)

! Configuration File for keepalived

global_defs {
   #唤醒邮箱配置
   notification_email {
     test@qq.com
   }
   notification_email_from test@qq.com
   smtp_server 127.0.0.1
   #配置邮件服务器链接超时时间
   smtp_connect_timeout 30
   #当前机子的字符串id
   router_id LVS_DEVEL_BAK
}

#vrrp脚本  名称必须和实例中的属性track_script中的值一致
vrrp_script track_nginx{
    #配置脚本路径
    script "/root/shell-script-dir/checknginx.sh"        
    #调用脚本的间隔时间 ,单位是秒
    interval  2
    #权重  调整优先级的权重  如果说执行脚本保活nginx失败  ,就会把优先级数值减去对应的权重
    weight -10

}

#vrrp的实例
vrrp_instance VI_1 {
  #服务器状态 
    state BACKUP
    当前实例绑定的网卡接口
    interface ens33
  #虚拟路由id  主备必须相同
    virtual_router_id 51
  #取值 优先级 1-255    
    priority 50
  #主备心跳间隔时间 单位 s
    advert_int 1
  #认证  主备切换时  进行认证  主备必须相同
    authentication {
        auth_type PASS
        auth_pass 1111
    }
  #虚拟ip 配置LVS=IPVS  keepalived虚拟出来的ip  以后对外公布是虚拟ip
    virtual_ipaddress {
	#虚拟IP 必须和要保活的软件所在的主机的ip的网段一致
        192.168.37.37
    }
  #追踪脚本 
    track_script{
      track_nginx
    }
}

 4.2.3、编写检查nginx是否正常运行脚本(主备都需要有)

vim /root/shell-script-dir/checknginx.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [$A -eq 0];then
    /usr/local/nginx/sbin/nginx
    if [ `ps -C nginx --no-header |wc -l` -eq 0];then
    killall keepalived
    fi
fi
chmod  u+x  /root/shell-script-dir/checknginx.sh

这里脚本里使用了killall,killall 不可用,可用安装psmisc包解决

yum install psmisc  -y

4.3、自动故障切换测试 

确保nginx在启动(在nginx1和nginx2上都执行)

ps -ef|grep nginx |grep -v grep

  启动, 两边都使用轮询

/usr/local/nginx/sbin/nginx

使用nginx1和nginx2分别访问

http://192.168.37.183:8088/index.jsp

http://192.168.37.184:8088/index.jsp

如果不是按照轮询的方式请求,可以尝试重启nginx

/usr/local/nginx/sbin/nginx -s reload

启动keepalived(在nginx1和nginx2上都启动)

  service keepalived  status

  service keepalived  start

  service keepalived  status

通过虚拟IP测试

http://192.168.37.37:8088/index.jsp

 故障切换测试

windows环境下,cmd窗口执行以下指令

arp -a 192.168.37.37   这里的ip是虚拟ip

然后 去linux环境下nginx1中执行

ip a

 

说明当前请求在nginx1上 

在windows,cmd窗口中执行

ping -t 192.168.170.168

可以ping通

在nginx1 上杀死keepalived

   killall keepalived

   service keepalived stop  停止不了keepalived   

    当杀死进程后  ping -t  会出现短暂超时,又正常

再次使用 arp -a  192.168.170.168

 就会发现切换到nginx2上了 

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

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

相关文章

敏捷架构框架:数字化转型的核心驱动力

在数字化转型的浪潮中,传统的企业架构和组织结构正面临严峻挑战。为了在快速变化的市场环境中保持竞争力,企业不仅需要灵活的开发流程,还需要一种能够支持敏捷方法的架构体系。《数字化时代的敏捷架构》提出的敏捷架构框架(Agile …

建筑物规则化(实现) --- 特征边分组、重构、直角化

规则化建筑物 一、摘 要 建筑物多边形在地图综合中的两类处理模型:化简与直角化。 建筑物矢量数据来源广泛,在数据获取过程中,受GPS精确度、遥感影像分辨率或人为因素的影响,数据往往存在不同程度的误差。其中,图像分割、深度学习…

规范化JavaBean

Java Bean 是一个很常见的概念,简单来说就是一个 Java 类,其中的内容就是各种属性,以及各个属性的 getter/setter 。例如: class Student {private String name;private int age;public String getName() {return this.name;}pub…

网络协议与Netty

1、讲一讲什么是RPC? 说到RPC就必须要聊一聊单体项目和分布式/微服务项目 单体项目时:一次服务调用发生在同一台机器上的 同一个进程内部 ,也就是说调用发生在本机内部,因此也被叫作本地方法调用。 分布式/微服务项目时&#x…

负载均衡:定义与核心作用

负载均衡:定义与核心作用 一、负载均衡的定义二、负载均衡的核心作用 💖The Begin💖点点关注,收藏不迷路💖 负载均衡,作为网络技术的重要一环,对优化资源利用和提升服务器响应速度至关重要。本文…

Ps:首选项 - 界面

Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K Photoshop 首选项中的“界面” Interface选项卡可以定制 Photoshop 的界面外观和行为,从而创建一个最适合自己工作习惯和需求的工作环境。这些设置有助于提高工作效率,减轻眼…

快速带你玩转高性能web服务器

目录 一.Web 服务基础介绍 ​编辑1.1 互联网发展历程回顾 1.2 Web 服务介绍 1.2.1 Apache的图标 1.2.2 NGINX的图标: 1.2.3 Apache 经典的 Web 服务端 1.2.3.1 Apache prefork 模型 1.2.3.2 Apache worker 模型 1.2.3.3 Apache event模型 1.2.4 Nginx-高性能的 Web …

PanDownload 网页复刻版最新PHP源码

源码介绍 PanDownload 网页复刻版,PHP语言版,PanDownload在线解析下载的优点,速度快,受用户自身带宽限制,就是说你的宽度交多少决定你下载的速度,不用下载百度网盘客户端,你可以直接使用解析所…

PingCAP 携手 CCF 数据库专委会打造“开源数据库领域拔尖创新人才培育计划”,共塑数据库教育未来丨NDBC 2024

2024 年 8 月 7 日 - 10 日,由中国计算机学会主办、中国计算机学会数据库专业委员会和新疆大学承办、新疆 IT 三会等单位协办的第 41 届中国数据库学术会议(NDBC 2024)在新疆乌鲁木齐成功举办。 大会上 PingCAP 联合创始人黄东旭发表了主题演…

LabVIEW深度监测系统

随着果园机械化作业的迅速发展,传统的人工监测方式已难以满足现代农业的高效率与精准性需求。本文介绍了一种基于LabVIEW软件的果园开沟深度监测系统,该系统通过集成先进的传感技术与数据处理算法,实现了对开沟深度的实时精确监测和自动控制&…

11.SPI通信

SPI理论 常规四线:SCLK、CS、MOSI(主向从发)、MISO(从向主发) 同步、串行、全双工、速率(MHz) 一主一从、一主多从、不能多主 工作模式: CPOL 0:总线空闲状态时钟为低电平,1:总线空闲状态时钟为高电平 CPHA 0&#…

【Python系列】执行 Shell 命令的六种方法

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

0.91寸OLED迷你音频频谱

一、简介 音频频谱在最小0.91寸OLED 屏幕上显示,小巧玲珑 二、应用场景 本模块为音频频谱显示模块,用来获取声音频谱并展示频谱,跟随音乐声音律动 三、产品概述 基于主控芯片设计的将声音采集分析频谱,显示到0.91寸OLED的功能…

【Git】常见命令的使用

Git 介绍流程安装常见命令本地仓与远程仓关联 介绍 Git、Svn:版本控制器(用于多人团队协作) Svn:集中式版本控制器;版本库集中放在中央服务器,操作非常简单,鼠标右键提交、新增、下载 Git&…

华为OD机试 - 模拟目录管理 - 栈(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

博弈论,CF 1600E - Array Game

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1600E - Array Game 二、解题报告 1、思路分析 记最长递增前缀长度为L&a…

点云倒角距离(Chamfer Distance,CD)

本文为专栏《Python三维点云实战宝典》系列文章,专栏介绍地址“【python三维深度学习】python三维点云从基础到深度学习_python3d点云从基础到深度学习-CSDN博客”。配套书籍《人工智能点云处理及深度学习算法》提供更加全面和系统的解析。 点云倒角距离&#xff08…

零基础5分钟上手亚马逊云科技-高可用Web系统设计最佳实践

简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

DT浏览器使用教程之如何使用智能问答

DT浏览器使用教程之如何使用智能问答, 在DT浏览器首页点智能问答, 在智能问答页面写上相关问题,点提问, 等待一会儿就可以显示出相关答案了, 点右上角保存,可以保存到DT浏览器的笔记本 DT浏览器是一款适合…

450nm 高功率蓝光激光模组使用多长时间需要更换

450nm蓝光激光模组以其独特的波长特性和高功率输出,成为了市场上备受瞩目的产品。然而,对于用户而言,了解这类高功率激光模组的使用寿命及何时需要更换,是确保工作效率和设备安全性的重要环节。本文将带大家了解450nm 高功率蓝光激…