50、haproxy+keepalive+nginx

news2024/12/24 9:15:03

keepalive+haproxy

客户端:192.168.168.21

haproxy1:192.168.168.43

haproxy2:192.168.168.44

vip:192.168.168.100

nginx1:192.168.168.31

nginx2:192.168.168.32

haproxy+keepalive做高可用

nginx做后台

haproxy1+haproxy2一起操作:

systemctl stop firewalld.service
setenforce 0
yum -y install keepalived

cd /etc/keepalived/

结束操作。

vim keepalved.service

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_1
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_iptables
}
 vrrp_script check_haproxy {
     script "/opt/check_haproxy.sh"
      interval 5
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.168.100
}
         track_script {
         check_haproxy
}
}

脚本

vim /opt/check_haproxy.sh

#!/bin/bash
test=$(systemctl status haproxy.service | awk 'NR==3{print $2}')
if [ $test != 'active' ]
then
   systemctl stop keepalived
fi

haproxy1:

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global
        #log loghost    local0 info
        maxconn 4096
        #最大连接数,linux推荐值1024
        #chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        nbproc 6
        #haproxy的并发线程数,设置的数量最好是cpu的2倍或者是和cpu保持一致。
        #debug
        #quiet

defaults
#默认参数配置,连接配置,监听配置,代理转发配置
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        #检查节点服务器3次,连续3次失败,就认为节点服务器不可用
        redispatch
        #服务器负载很高时,自动结束当前队列中处理比较久的连接。
        maxconn 2000
        #最大连接数,这个数值可以和global中的一致,也可以比他小,但是不能超过他,一般设置成一致。
        #contimeout     5000
        #clitimeout     50000
        #srvtimeout     50000
        timeout http-request 10s
        #http请求的默认超时时间
        timeout queue 1m
        #在队列请求的超时时间
        timeout connect 10s
        #连接超时时间
        timeout client 1m
        #客户端的超时时间
        timeout server 1m
        #服务端的超时时间
        timeout http-keep-alive 10s
        #默认长连接的超时时间
        timeout check 10s
        #检查后端服务器的超时时间
#转发请求的配置,即可以是四层也可以是七层
#7层的配置:
listen  xy102 0.0.0.0:80
        option httpchk GET /index.html
        #设置转发请求的内容
        balance static-rr
        #轮询算法#      
        server  rs01 192.168.168.31:80 check inter 2000 fall 3 weight 2
        server  rs02 192.168.168.32:80 check inter 2000 fall 3 weight 3

systemctl restart haproxy.service
systemctl restart keepalived.service

备服务器

scp root@192.168.168.43:/etc/keepalived/keepalived.conf /etc/keepalived/

vim keepalived.conf 

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_2
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_iptables
}

vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.168.100
    }
}

systemctl restart haproxy.service 
systemctl restart keepalived.service
nginx1:

echo "this is nginx11" > /usr/local/nginx/html/index.html

systemctl restart nginx

nginx2

echo "this is nginx12" > /usr/local/nginx/html/index.html

systemctl restart nginx

haproxy1:

systemctl restart haproxy.service
systemctl restart keepalived.service
ip addr

在这里插入图片描述

haprox2:

在这里插入图片描述

客户端测试:

在这里插入图片描述

haproxy1:

systemctl stop haproxy.service

ip addr

在这里插入图片描述

haproxy2:

ip addr

在这里插入图片描述

客户端测试:

在这里插入图片描述

在这里插入图片描述

haproxy1:

systemctl restart haproxy.service
systemctl restart keepalived.service
ip addr

在这里插入图片描述

客户端测试:

在这里插入图片描述

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

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

相关文章

实验发现AI提高了个人创造力,但降低了整体创造力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

从链表中移除在数组中存在的节点 | 力扣题解

⭐简单说两句⭐ ✨ 正在努力的小叮当~ 💖 超级爱分享,分享各种有趣干货! 👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板 🌈 感谢关注,关注了你就是我的超级粉丝啦! &a…

【自监督学习】iBOT in ICLR 2022

一、引言 论文: iBOT🤖: Image BERT Pre-Training with Online Tokenizer 作者: ByteDance 代码: iBOT 注意: 该方法是在另一个自监督预训练方法基础上的改进,学习之前建议掌握DINO。 特点: 对…

数据结构之初始二叉树(1)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 树型结构 树的概念 与树的有关概念 树的表示形式 树的应用 二叉树 概念 两种特殊的…

MFC流的形式读取图片

1.基于对话框布置控件 2.给控件绑定变量 3.给按钮控件添加响应函数 void CMFC流的形式读取图片Dlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码//HDC mECGDC; // 设备描述表句柄//CPen mECGDrawPen; // ECG波形画笔//RECT mECGRect; // 在该矩形区域内画…

Three.js相机简明教程

相机校准是 3D 计算机图形学中的一个基本概念,涉及设置虚拟相机以模拟真实世界相机的视角和行为。在 Three.js(一种流行的 3D 渲染 JavaScript 库)中,了解相机校准对于创建逼真且身临其境的 3D 场景至关重要。在本文中&#xff0c…

AIGC是什么,与AI绘画有什么关系,一篇文章带你了解AI绘画的前世今生

在讲解AIGC和AI绘画之前,我们先看看什么是AI以及AI的历史。 AI历史发展轨迹 什么是人工智能 人工智能(Artificial intelligence,简称AI)亦称机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指用普通计算机程序来呈现人类智…

ConfigMap-secrets-静态pod

一.ConfigMap 1.概述 ConfigMap资源,简称CM资源,它生成的键值对数据,存储在ETCD数据库中 应用场景:主要是对应用程序的配置 pod通过env变量引入ConfigMap,或者通过数据卷挂载volume的方式引入ConfigMap资源 官方解释…

成为git砖家(1): author 和 committer 的区别

大家好,我是白鱼。一直对 git author 和 committer 不太了解, 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码, 根据某个历史 commit A 创建了分支, 然后 cherry-pick 了这个 commit …

240710_昇思学习打卡-Day22-条件随机场

240710_昇思学习打卡-Day22-条件随机场 在正式开始LSTMCRF序列标注之前,我们先来了解一下条件随机场,以下仅做简单介绍。 CRF全称Conditional Random Field,按照名字来理解,条件随机,随机输入,条件输出。…

vue中父子传递属性值

1、父传子属性值 自定义图库组件 在add.vue中应用tuku组件并给默认值 效果 2、 子传父,逆向赋值 add.vue和第一问中一样 修改tuku组件,传值给add.vue 3、多个传递 效果: 点击两个修改按钮后 4、使用defineModel简化父子传值 其他代码跟…

使用Tkinter库设计实现的中小学校疫情防控入校人员登记检测系统

Tkinter简介 Tkinter是Python标准库中用于GUI图形用户界面开发的工具包,它是基于Tcl/Tk的封装,提供了大量预定义的控件,如按钮、文本框、标签等,非常适合快速原型开发和小型应用的构建。本文将通过一个具体的案例——“中小学校疫…

【java】力扣 合并k个升序链表

文章目录 题目链接题目描述思路代码 题目链接 23.合并k个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表 思路 我在这个题里面用到了PriorityQueue(优先队列) 的知识 Prio…

鸿蒙语言基础类库:【@system.app (应用上下文)】

应用上下文 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import app from system.app;app.getInfo …

MFC之对话框--重绘元文件

文章目录 实现示例展示需要绘制的窗口/位置控件位置更新下一次示例粗细滑动部分更新 重绘元文件(窗口变化内容消失)方法一:使用元文件方法二:兼容设备方法三:使用自定义类存储绘图数据除画笔外功能处理画笔功能处理 保…

【雷达原理】MIMO雷达技术

一、MIMO雷达原理 1.1 基本概念 多输入多输出(Multiple input multiple output,MIMO)雷达指该雷达具有多个发射天线和多个接收天线。 学术界对 MIMO 雷达的定义中,多输入是指同时发射多种雷达信号波形( 一般是多个天线同时发射不同的波形) ,…

藏着不为人知的泪水

在娱乐圈的璀璨舞台上,每一个光芒四射的背后,藏着不为人知的汗水与泪水。提及#张艺凡 出道位#,这段历程,不仅仅是个人奋斗的见证,更是关于勇气、坚持与自我证明的壮丽篇章。曾几何时,网络的喧嚣声中&#x…

【信息系统项目管理师】高项常见知识点与公式

绩效域、合同、配置、变更、招投标、安全、立项论文考到的话大致业是按下面相关知识点开写 八大绩效域及其要点 团干部策划开公交 合同管理 合同的签订->合同的履行管理->合同的变更管理->合同的档案管理->合同的违约\索赔管理 配置管理 制定配置管理计划配置识…

欧几里得算法求解若干数的最小公倍数

公倍数 公倍数(common multiple)是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。公倍数中最小的数,就称为这些整数的最小公倍数(lowest common multiple) 求解方法 求多个数的最小公…

c++ new 与二级指针

new 与数组的简单用法&#xff0c;一个简单的例子&#xff1a; #include <stdio.h> #include <stdlib.h>#define MAX_ARRAY_NUM 10int main() {int *p new int[MAX_ARRAY_NUM];for(int i 0; i < MAX_ARRAY_NUM; i){p[i] i 10;}for(int i 0; i < MAX_AR…