HAProxy实现负载均衡

news2025/1/6 20:41:34

目录

一、HAProxy介绍

二、环境准备

三、实验拓扑

四、HAProxy部署

五、配置HAProxy状态页面


一、HAProxy介绍

        ha-proxy是一款高性能的负载均衡软件,主要是做7层负载均衡,也可以做4层负载均衡。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。ha-proxy相对LVS、Nginx等负载均衡软件的优点。

  • 支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
  • 支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
  • 性能非常优秀,基于单进程处理模式(和Nginx类似)让其性能卓越。
  • 拥有一个功能出色的监控页面,实时了解系统的当前状况。
  • 功能强大的ACL支持,给用户极大的方便。

LVS、HAPorxy、Nginx对比:

负载均衡性能:LVS > HAProxy > Nginx

能性和便利性:Nginx>HA>LVS

        对于一个大型后台系统来说,LVS、HAProxy和Nginx常常可以配合使用在不同的层级,LVS用在接入层的最前端,承担最大规模的流量分发;HAProxy负责按域名分流;而Nginx只需要作为Web服务器负责单机内多实例的负载均衡,或负责目录结构分流和静态资源缓存等需求。

haproxy算法:
(1)roundrobin:基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.
(2)static-rr:基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制
(3)leastconn:新的连接请求被派发至具有最少连接数目的后端服务器.

二、环境准备

服务器主机名IP备注
HAProxy服务器haproxy

ens33:192.168.2.10(内网)

ens38:192.168.1.10(外网)

关闭selinux和firewalld
Web1网站服务器web1ens33:192.168.2.20(内网)关闭selinux和firewalld
Web2网站服务器web2ens33:192.168.2.30(内网)关闭selinux和firewalld

三、实验拓扑

 

四、HAProxy部署

#haproxy主机安装
yum install haproxy -y

#编辑配置文件
vim /etc/haproxy/haproxy.cfg   #在文末新增如下内容
listen websrv *:80    #本地集群监听端口,websrv为自定义名称,客户端访问192.168.1.10:80为转发到下面设置的集群节点IP和端口
    balance roundrobin      #使用轮询,也是默认算法,可以不写;leastconn为最小连接算法名
    server  web1  192.168.2.20:80 check inter 2000 rise 2 fall 5   #节点1,web1为自定义节点名,check为打开健康检查,inter为健康检查时间间隔,fall为几次健康检查失败就认为节点挂了,rise为节点恢复后,健康检查通过几次后,才认为该服务器真正恢复。
    server  web2  192.168.2.30:80 check inter 2000 rise 2 fall 5   #节点2
#启动服务
systemctl start haproxy

客户端测试:

 

五、配置HAProxy状态页面

vim /etc/haproxy/haproxy.cfg   #文末额外增加如下内容
listen stats *:1080        #监听端口,stats为自定义名称
    stats refresh 30s      #统计页面自动刷新时间
    stats uri /stats       #统计页面url,可自定义,访问的时候使用的是该处设置的地址即可
    stats realm Haproxy Manager     #进入管理界面查看状态信息
    stats auth admin:admin          #统计页面用户名和密码设置
systemctl restart haproxy

 参数说明:

  • Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
  • Session rate每秒会话率(当前值,最大值,限制数量);
  • Sessions总会话量(当前值,最大值,总量,Lbtot:total number of times a server was selected选中一台服务器所用的总时间);
  • Bytes(入站,出站流量);
  • Denied(拒绝请求、拒绝回应);
  • Errors(错误请求、错误连接、错误回应);
  • Warnings(重新尝试警告retry,重新连接redispatches);
  • Server(状态、最后检查时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量,down机时长);

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

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

相关文章

8、如何使用FactoryBean向Spring容器中注册bean?

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

openEuler快速入门-openEuler命令行基础操作

系列文章目录 第一章 openEuler快速入门(一)-openEuler操作系统介绍 文章目录系列文章目录前言一、shell是什么二、Linux命令行操作技巧三、基础命令3.1、Linux命令分类3.2、目录和文件3.2.1 相对路径和绝对路径3.2.2 处理目录的常用命令ls:cd:pwd&…

tkinter绘制组件(36)——树状图

tkinter绘制组件(36)——树状图引言布局函数结构内容数据格式整体框架绘制元素与重绘宽度标识元素展开与闭合完整函数代码效果测试代码最终效果github项目pip下载结语引言 TinUI的第38个元素控件,也是TinUI-4.0-添加的第一个组件&#xff0c…

Rsync下行同步+inotify实时同步介绍和部署

一、Rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩&#xf…

2022世界杯结果预测,简单AI模型最有效?附代码!

2022世界杯冠军是谁?本文将为你揭晓一个利用简单AI模型得到的靠谱预测。 许多人称足球为“不可预测的比赛”,因为一场足球比赛有不同的因素可以改变最终比分。 这是真的……在某种程度上。 北大出版社,人工智能原理与实践 人工智能和数据科…

面试官:什么是伪共享,如何避免?

本文已收录到 GitHub AndroidFamily,有 Android 进阶知识体系,欢迎 Star。技术和职场问题,请关注公众号 [彭旭锐] 加入 Android 交流群。 前言 大家好,我是小彭。 在前面的文章里,我们聊到了 CPU 的高速缓存机制。…

【electron】判断当前进程是否是开发环境的五种方案(获取一些资源的路径)

文章目录导读需求开发环境判断是否是开发环境方案一:location.protocol方案二:全局变量__static方案三:全局变量process.resourcesPath方案四:全局变量process.env.WEBPACK_DEV_SERVER方案五:app.isPackaged获取配置目…

OS-process

process 什么是进程 进程是被加载到内存中、正在运行的程序;多个进程可能对于同一个程序、一个正在运行的OS中会有多个进程 进程是程序的一次执行过程,是操作系统分配资源的基本单位 作业等同于进程 进程的布局: 每个进程都有一个不同的…

内网渗透中最常见的十种漏洞分析总结

【环境搭建资料、工具包、全套视频…等籽料】私信聆取 以下信息是根据2020年和2019年为全球各种中型组织和企业完成的60多个渗透测试报告汇总而来的,在跳转到列表之前,让我们简要介绍一下全面的测试方法。 一、测试方法 目的是使用白盒(灰盒)方法在现场…

spirngboot项目.mvn/wrapper/maven-wrapper.properties‘ does not exist.

rm -rf ~ 命令后,项目出现一些问题,如下 执行命令: ./mvnw clean package -am -pl bistoury-dist -P$PROFILR -Dmaven.test.skip -Denforcer.skiptrue 报异常: starting to build bistoury agent Exception in thread "ma…

[附源码]java毕业设计同德佳苑物业管理系统论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SpringBoot数据层解决方案/ 内置持久化解决方案JdbcTemplate使用/内置数据库H2使用以及RedisNoSql使用

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.4 数据层解决方案 3.4.1 使用项目 新建空项目&a…

redis的事务

Redis的事务:一次事务操作,改成功的成功,该失败的失败。 提交事务 如果遇见错误 成功的成功,失败的失败,不会回滚 先开启事务,执行一些列的命令,但是命令不会立即执行,会被放在一…

web分享会

文章目录前言平台1. 在线练习平台2. 自己搭建靶场3. CTF真题平台分享前言 个人的学习过程仅供参考。 个人情况 我是大二进的工作室,算是比较晚的了,工作室的师兄人也很好,我有问题也会去找他们。我是一位女生,非常欢迎师妹们加入&…

从购买云服务器开始到成功部署网站并且可以正常外网访问整个体系流程(从0到1的过程)

准备工作: 购买云服务器(阿里云或腾讯云都行),过程一样。购买域名,并做解析处理,通过域名访问网站(后面需要自行备案)。 云服务器一些基本配置处理: 用密码登录方式登录root用户到云服务器上 登录成功后&#xff0c…

MHDNet

发现一种性能更优的目标检测网络,不同的输入分辨率下,目标分布和检测头之间存在不同的匹配关系。基于这些有指导意义的发现,作者提出了一种基于检测头和目标分布之间匹配的轻量化交通目标检测网络,称为MHDNet。该模型在BDD100K数据…

【k8s】3、kubeadm安装k8s集群

文章目录一、环境部署1、关闭防火墙规则、关闭selinux、关闭swap交换分区2、修改主机名、DNS解析3、调整内核参数二、所有节点安装Docker三、安装k8s集群1、所有节点配置K8S源2、所有节点安装kubeadm、kubelet和kubectl3、部署K8S集群3.1 初始化操作(master节点操作…

【虚幻引擎UE】UE4/UE5 环境构建插件推荐及使用介绍

一、Ultra Dynamic Sky(天气插件) 支持天气和昼夜变换,包含音效,可以预设也可以动态切换。内置照明解决方案,太阳、月亮和天空照明均与天空同步,并随时间变化。 天气包含:晴天、2D晴天、雨天、…

进程的通信 - 命名管道

命名管道概述 命名管道(Named Pipes),顾名思义,一个有名字的管道。命名管道的名字主要是用于确保多个进程访问同一个对象。命名管道不仅可以在同一台计算机之间传输数据,甚至能在跨越一个网络的不同计算机的不同进程之…

Zbrush 导出置换 然后导入vray 在 3ds max 和 maya 设置

注:方法很多,这个只是个人学习总结,如果不合适,可另外学习其他方法! 第一步: Zbrush 导出置换和法线设置: 第二步: 3Ds max 设置方式建议用exr格式(由于导出的时候…