linux之Haproxy

news2024/12/23 9:45:39

介绍

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漂移回来(大概过几秒钟)

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

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

相关文章

Android笔记(三十):PorterDuffXfermode实现旋转进度View

背景 核心原理是使用PorterDuffXfermode Path来绘制进度,并实现圆角 效果图 Android笔记(三十)效果演示 进度条绘制步骤 将ImageView矩形七个点的坐标存储起来(configNodes) 他们对应着7个不同的刻度,每个刻度的值 i * &#…

确保未来安全:应对云安全的复杂性

云是业务运营的重要组成部分,它改变了组织扩展、创新和适应的方式。然而,其影响力日益增长的广度和深度不仅仅局限于商业领域。云环境是我们日常生活中不可或缺的一部分,负责存储和传输全球平民最敏感的数据。随着大量企业和个人利用云&#…

【Faster Bing】Bing 搜索结果取消跳转至 bing.com/ck

更快的 Bing (Faster Bing) 1. 介绍 项目地址: GitHub: https://github.com/jiang-taibai/faster-bingGitee: https://gitee.com/jiang-taibai/faster-bingGreasyFork: https://greasyfork.org/en/scripts/490999-faster-bing 在使用 Bing 搜索时,Bin…

HarmonyOS 应用开发之UIAbility组件与UI的数据同步

基于当前的应用模型,可以通过以下几种方式来实现UIAbility组件与UI之间的数据同步。 使用EventHub进行数据通信:在基类Context中提供了EventHub对象,可以通过发布订阅方式来实现事件的传递。在事件传递前,订阅者需要先进行订阅&a…

Discord多个帐户怎么防止被封号?

Discord 是一款免费的语音和文本聊天应用程序。它是一个游戏聊天应用程序和社区,最初是游戏的语音和IM服务,然后转向直播,然后是游戏商店的社区平台。它成为游戏玩家在游戏中交流和协作的首选工具。下面将为你介绍如何同时使用多个discord账号…

武汉星起航深耕亚马逊,助力新手卖家成功起航

在跨境电商的浪潮中,亚马逊平台凭借其强大的品牌影响力和广阔的市场前景,吸引了无数创业者的目光。然而,对于缺乏经验的新手卖家而言,如何在竞争激烈的亚马逊市场中脱颖而出,成为了一道难题。武汉星起航电子商务有限公…

WordPress Git主题 响应式CMS主题模板

分享的是新版本,旧版本少了很多功能,尤其在新版支持自动更新后,该主题可以用来搭建个人博客,素材下载网站,图片站等 主题特点 兼容 IE9、谷歌 Chrome 、火狐 Firefox 等主流浏览器 扁平化的设计加响应式布局&#x…

实验3 中文分词

必做题: 数据准备:academy_titles.txt为“考硕考博”板块的帖子标题,job_titles.txt为“招聘信息”板块的帖子标题,使用jieba工具对academy_titles.txt进行分词,接着去除停用词,然后统计词频,最…

日赚2000万的短剧,还能火多久?

沈瑶初十年前就义无反顾地爱上高禹川,当他们两人再次相遇,她主动靠近高禹川,不料,她却意外怀孕,高禹川为了负责选择领证,但不公布两人的关系...... 这是一部情绪稳定女航医与傲娇疯批男机长的虐恋剧。在这个…

k8s 如何获取加入节点命名

当k8s集群初始化成功的时候&#xff0c;就会出现 加入节点 的命令如下&#xff1a; 但是如果忘记了就需要找回这条命令了。 kubeadm join 的命令格式如下&#xff1a;kubeadm join --token <token> --discovery-token-ca-cert-hash sha256:<hash>--token 令牌--…

[STM32] Keil 创建 HAL 库的工程模板

Keil 创建 HAL 库的工程模板 跟着100ASK_STM32F103_MINI用户手册V1.1.pdf的第7章步骤进行Keil工程的创建。 文章目录 1 创建相关文件夹2 创建“main.c/h”和“stm32f1xx_clk.c/h”3 复制CMSIS和HAL库4 创建新的Keil工程5 添加组文件夹和工程文件6 配置Keil设置 1 创建相关文件…

spring(3)

spring6 1、bean生命周期1.1 bean生命周期之五步1.2bean生命周期之七步1.3 bean生命周期之十步1.4 bean作用域与管理周期 2、把自己new的对象交给spring管理3、Bean循环依赖3.1 setsingleton3.2 构造singleton3.3 propotypeset注入3.4 bean循环依赖源码分析&#xff1a;3.5 常见…

NineData与StarRocks商业化运营公司镜舟科技完成产品兼容认证

近日&#xff0c;镜舟科技与NineData完成产品兼容测试。在经过联合测试后&#xff0c;镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容&#xff0c;整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统&#xff0c;打造独具竞争力的“数据护城河”…

upload-labs-master靶场训练笔记

2004.2.17 level-1 &#xff08;前端验证&#xff09; 新建一个写有下面一句话木马的php文件&#xff0c;然后把后缀改为png <?php eval($_POST["abc"]); ?> 用bp抓包后更改文件后缀为php 再用蚁剑等工具链接即可拿下shell level-2 &#xff08;后端…

Java基本数据结构(基于jdk11)

java中有很多数据类型&#xff0c;以下数据类型都出于java.util包下且日常经常使用的&#xff0c;先介绍一下接口&#xff0c;接口可以很快的了解到这个数据结构的特性。 接口 List: 有序队列&#xff0c;如&#xff1a;ArrayList、LinkedList Deque&#xff1a;双端队列&am…

Ruoyi-Cloud-Plus_使用Docker部署分布式微服务系统---SpringCloud工作笔记200

1.首先安装docker: 如果以前安装过首先执行: yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 去卸载docker 2.安装dokcer需要的工具包…

HarmonyOS入门--ArkTS--基本语法

文章目录 ArkTSArkTS声明式开发范式的基本组成基本语法声明式UI创建组件配置属性配置事件配置子组件 自定义组件基本结构成员函数/变量build()函数自定义组件通用样式自定义组件的创建和渲染流程自定义组件重新渲染自定义组件的删除 Builder装饰器全局自定义构建函数组件内部的…

MySQL数据库 - 复杂查询(一)

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.27 Last edited: 2024.03.27 目录 MySQL数据库 - 复杂查询&#xff08;一&#xff09; 第1关&#xff1a;交换工资 任务描述 相关知…

【论文阅读】Faster Neural Networks Straight from JPEG

Faster Neural Networks Straight from JPEG 论文链接&#xff1a;Faster Neural Networks Straight from JPEG (neurips.cc) 作者&#xff1a;Lionel Gueguen&#xff0c;Alex Sergeev&#xff0c;Ben Kadlec&#xff0c;Rosanne Liu&#xff0c;Jason Yosinski 机构&#…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变&#xff0c;特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变&#xff0c;提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…