linux之Haproxy

介绍

haproxy是一种开源的TCP和HTTP负载均衡代理服务器软件。客户端通过Haproxy代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器

下载Haproxy

yum install haproxy -y

开启服务

systemctl start haproxy

配置文件

在主配置文件/etc/haproxy/haproxy.cfg中,由两大部分组成

global:全局配置

proxies:代理配置

defaults :为 frontend, backend, listen 提供默认配置
frontend :前端,相当于 nginx 中的 server {}
backend :后端,相当于 nginx 中的 upstream {}
listen :同时拥有 前端和后端配置

Haproxy的8种负载均衡 

在proxies中的backend模块中设置

1. 轮询 (Round Robin): 请求依次分发到每个后端服务器,按顺序进行负载均衡。

2. 加权轮询 (Weighted Round Robin): 可以为每个后端服务器设置权重,根据权重分配请求,以实现不同性能的服务器在负载均衡中发挥不同作用。

3. 最少连接 (Least Connection): 请求分发到当前连接数最少的后端服务器,以实现负载均衡。

4. 加权最少连接 (Weighted Least Connection): 与加权轮询类似,可以为每个后端服务器设置权重,但该模式根据连接数来决定负载均衡。

5. URI哈希 (URI Hash): 将请求的URI进行哈希,然后根据哈希值将请求分发到对应的后端服务器,确保相同URI的请求经常落在同一后端服务器上。

6. IP哈希 (IP Hash): 将请求的源IP进行哈希,然后根据哈希值将请求分发到对应的后端服务器,确保同一IP的请求经常落在同一后端服务器上。

7. URL参数哈希 (URL Parameter Hash): 与URI哈希类似,不过该模式是根据请求的URL参数进行哈希来实现负载均衡。

8. 复制(Backup): 当主要的服务器不可用时,请求会被转发到指定的备用服务器,用于故障转移和故障恢复。

Haproxy负载均衡实例(一)

Haproxy主机配置192.168.199.149,真实服务器为192.168.199.150,192.168.199.155,默认配置好nginx服务,自己能curl自己,显示自己的页面
关闭firewalld和selinux

修改主配置文件

vim /etc/haproxy/haprooxy.cgf(其他部分注释掉)
采取轮询模式,权重相等

修改rsyslog配置

vim /etc/rsyslog.conf
开启UDP,修改*.emarg  ,添加最后一行

开启远程日志

 vim /etc/sysconfig/rsyslog

重启服务

systemctl restart rsyslog
systemctl restart haproxy

测试

访问192.168.199.149
155和150轮询成功
输入192.168.199/ha_stats

问题解决

访问192.168.199/ha_stats显示错误
查看haproxy服务状态显示没有成功启动
原因:/etc/haproxy/haproxy.cfg配置错误
修改

使用Keepalived实现HAProxy高可用

主机192.168.199.149        虚拟IP192.168.199.148

备机192.168.199.151

后端真实服务器192.168.199.150,192.168.199.155

主机+备机        keepalived,haproxy

真实服务器        nginx

关闭firewalld和selinux

主机配置

yum install keepalived

yum install hapoxyd

keepalived配置

vim /etc/keepalived/keepalived.cfg

haproxy配置

vim /etc/haproxy/haproxy.cfg

备机配置

直接把主机的配置传到备机上

在主机上执行

scp /etc/keepalived/keepalived.cfg  192.168.199.151:/etc/keepalived/keepalived.cfg

scp /etc/haproxy/haproxy.conf  192.168.199.151:/etc/haproxy/haproxy.conf

在备机的/etc/keepalivedkeepalived.cfg中把state 后面修改为BACKUP

priority修改为小于100(一般为90)

真实服务器配置

配置好nginx,开启服务并能curl自己显示界面

开启nginx服务

测试

在主机和备机分别开启服务

systemctl start keepalived

systemctl start haproxy

只有当system status 服务 显示成功启动成功才行(显示绿色running)

测试负载均衡

测试高可用

添加虚拟IP

ip addr add 192.168.199.148/32 dev ens33

主节点IP

备机IP

停掉主机的keepalived服务,查看ip是否漂移

发现没有漂移,访问192.168.199.148出现问题

检查后发现keepalived配置文件缺少检查配置,修改后如下

添加一个vrrp_script

在 Keepalived 中,vrrp_script 是用于定义状态检测脚本的配置项。通过 vrrp_script 配置,Keepalived 可以定期执行指定的状态检测脚本,用于检测特定服务或资源的可用性,从而决定节点的状态切换

再次测试

重启服务,再次测试,停止主机的haproxy服务

查看主机ip,实现漂移

备机IP

测试页面,成功

重新启动主机的haproxy服务,查看主机ip

148虚拟IP漂移回来(大概过几秒钟)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信息学奥赛之MAC端VSCode C++环境配置

前提 安装 Visual Studio CodeVSCode 中安装 C/C扩展确保 Clang 已经安装(在终端中输入命令:clang --version 来确认是否安装)未安装,在命令行执行xcode-select --install 命令,会自行安装,安装文件有点大…

CSS 脱离标准文档流 浮动

浮动 在标准流当中,元素或者标签在页面上摆放的时候会出现不如意的地方。要想解决这些问题可以采用脱离标准流的方式来进行解决这些问题,脱离标准流也称为脱离文档流。 脱离标准流的解决方式有三种,一种是浮动,另外一种是固定定位…

综合案例:使用Scrapy爬取当当网的图片信息

本节将继续讲解 Scrapy 框架的使用。具体包括 Scrapy 爬虫框架以及内部每个组件的使用(Selector 选择器、Spider 爬虫类、Downloader 和 Spider 中间件、ItemPipeline 管道类等)。 本例目标是爬取当当图书网站中所有关于 “python” 关键字的图片信息&a…

网站没有SSL证书会遇到什么问题?怎么解决?

简单来说,如果一个网站没装SSL证书,会有以下几个大问题: 1.信息容易被偷看: - 就像写信不封口一样,网站和用户之间的交流信息是透明的,谁都能看到。比如你在网站上输入的账号密码、联系信息、银行卡号等重要…

最全APP抓包大法

前言:最近工作中遇到一些比较奇葩的App,一边测试一边搜集整理出了比较全的姿势。如有错误之处,还请各位师傅多多指教。 如何判断:连接Fiddler代理–>抓不到包–>关闭Fiddler后正常通信。 解决方法:PC端模拟器如…

计算机视觉项目-单目测距/双目测距/3D目标检测/语义分割/姿态识别及姿态估计

往期热门大项目合集: yolov5单目测距速度测量目标跟踪YOLOv8界面-目标检测语义分割追踪姿态识别(姿态估计)界面DeepSort/ByteTrack-PyQt-GUI_yolov8显示速度-CSDN博客 3D目标检测(教程代码)_3d目标检测原理-CSDN博客…

基于Springboot+Vue的前后端分离的简单Demo案例(一)

后端创建Springboot项目 创建数据库表结构及表信息 添加依赖&#xff08;pom.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/X…

CSDN欢迎使用Markdown编辑器你好,写文章快捷键与格式

了 解一下Markdown的基本语法知识。 1.全新的界面设计&#xff0c;将会带来全新的写作体验; 2.在创作中心设置你喜爱的代码高亮样式Markdown 将代码片显示选择的高亮样式进行展示; 3.增加了 图片拖拽 功能&#xff0c;你可以将本地的图片直接拖拽到编辑区域直接展示; 4.全新的 …

19.作业

1.作业样例图 2.学习视频 19.作业讲解

安卓使用MQTT实现阿里云物联网云台订阅和发布主题(3)

一、订阅主题代码讲解 private final String mqtt_sub_topic "/sys/k0wih08FdYq/LHAPP/thing/service/property/set";//订阅话题//mqtt客户端订阅主题//QoS0时&#xff0c;报文最多发送一次&#xff0c;有可能丢失//QoS1时&#xff0c;报文至少发送一次&#xff0c…

YOLOv9改进策略:block优化 | AIFI (尺度内特征交互)助力YOLO | YOLO终结者?RT-DETR一探究竟

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; YOLOv9如何魔改卷积进一步提升检测精度&#xff1f;AIFI (尺度内特征交互&#xff09;助力YOLO ,提升尺度内和尺度间特征交互能力&#xff0c;同时降低多个尺度的特征之间进行注意力运算&#xff0c;计算消耗…

C语言例:n是否为素数(质数)

质数是指只能被1和自身整除的正整数。要判断一个数n是否为质数&#xff0c;可以通过以下步骤进行&#xff1a; 首先&#xff0c;判断n是否小于2&#xff0c;如果小于2&#xff0c;则不是质数。然后&#xff0c;从2开始&#xff0c;逐个判断n是否能被2到sqrt(n)之间的数整除。如…

jdk api之SyncFailedException基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

实体框架EF(Entity Framework)简介

实体框架EF&#xff08;Entity Framework&#xff09;简介 文章目录 实体框架EF&#xff08;Entity Framework&#xff09;简介一、概述二、O/R Mapping是什么采用O/R Mapping带来哪些好处 三、Entity Framework架构3.1 下图展示了Entity Framework的整体架构3.2 Entity Framew…

【机器学习-08】参数调优宝典:网格搜索与贝叶斯搜索等攻略

超参数是估计器的参数中不能通过学习得到的参数。在scikit-learn中&#xff0c;他们作为参数传递给估计器不同类的构造函数。典型的例子有支持向量分类器的参数C&#xff0c;kernel和gamma&#xff0c;Lasso的参数alpha等。 ​ 在超参数集中搜索以获得最佳cross validation交叉…

Ant Design Vue和VUE3下的upload组件使用以及文件预览

Ant Design Vue和VUE3下的upload组件使用以及文件预览 文章目录 Ant Design Vue和VUE3下的upload组件使用以及文件预览一、多文件上传1.需求2.样例3.代码 二、单文件上传1. 需求2. 样例3.代码 二、多文件上传产生的时间超时问题三、文件系统名称更改1. 修改文件index.html2. 修…

现货大宗商品交易系统开发及平台需要哪些资质

现货大宗商品交易平台需要一系列资质和条件来确保其合法、合规运营&#xff0c;保障投资者的权益和市场的稳定。以下是现货大宗商品交易平台需要的主要资质和条件&#xff1a; 公司注册与法人资格&#xff1a;平台需要依法办理工商注册登记手续&#xff0c;并具有法人资格。这…

硬核分享|如何使用AI根据一段文字描述来生成图片

硬核分享|如何使用AI根据一段文字描述来生成图片_哔哩哔哩_bilibili 最近许多人询问关于AIGC生成图片工具的推荐问题&#xff0c;深感寻找一款好用的AIGC生成图片工具在当今信息爆炸时代的重要性。现在&#xff0c;为大家分享几款好用的AIGC生成图片工具&#xff0c;一起探索吧…

【C++】vector容器初步模拟

送给大家一句话&#xff1a; 努力一点&#xff0c;漂亮—点&#xff0c;阳光一点。早晚有一天&#xff0c;你会惊艳了时光&#xff0c;既无人能替&#xff0c;又光芒万丈。 vector容器初步模拟 1 认识vector开始了解底层实现 2 开始实现成员变量构造函数 析构函数尾插迭代器插入…

FX110网:FCA揭露Admirals的克隆实体!冒充正规平台行骗

近日&#xff0c;英国金融行为监管局&#xff08;FCA&#xff09;曝光了多个网址&#xff0c;揭露克隆实体fxsadmiral / admiral-fx / admiralsfx。这些克隆公司复制授权公司Admiral Markets UK Ltd的重要信息&#xff0c;试图让人们相信他们的公司是真实的。FCA本次披露的克隆…