用-HAProxy-实现网络流量的负载平衡

教程大全 2025-07-16 00:58:31 浏览

安装、配置和运行 HAProxy,在几个网络或应用 服务器 之间分配网络流量。

不是只有在一个大型公司工作才需要使用负载平衡器。你可能是一个业余爱好者,用几台树莓派电脑自我托管一个网站。也许你是一个小企业的服务器管理员;也许你确实在一家大公司工作。无论你的情况如何,你都可以使用HAProxy负载平衡器来管理你的流量。

HAProxy 被称为“世界上最快和使用最广泛的软件负载平衡器”。它包含了许多可以使你的应用程序更加安全可靠的功能,包括内置的速率限制、异常检测、连接排队、健康检查以及详细的日志和指标。学习本教程中所涉及的基本技能和概念,将有助于你使用 HAProxy 建立一个更强大的、远为强大的基础设施。

为什么需要一个负载平衡器?

负载平衡器是一种在几个网络或应用服务器之间轻松分配连接的方法。事实上,HAProxy 可以平衡任何类型的传输控制协议(TCP)流量,包括 RDP、FTP、WebSockets 或数据库连接。分散负载的能力意味着你不需要因为你的网站流量比谷歌大就购买一个拥有几十万 G 内存的大型网络服务器。

负载平衡器还为你提供了灵活性。也许你现有的网络服务器不够强大,无法满足一年中繁忙时期的峰值需求,你想增加一个,但只是暂时的。也许你想增加一些冗余,以防一个服务器出现故障。有了 HAProxy,你可以在需要时向后端池添加更多的服务器,在不需要时删除它们。

你还可以根据情况将请求路由到不同的服务器。例如,你可能想用几个缓存服务器(如Varnish)来处理你的静态内容,但把任何需要动态内容的东西,如 API 端点,路由到一个更强大的机器。

在这篇文章中,我将通过设置一个非常基本的 HAProxy 环境,使用 HTTPS 来监听安全端口 443,并利用几个后端 Web 服务器。它甚至会将所有进入预定义 URL(如)的流量发送到不同的服务器或服务器池。

安装 HAProxy

要开始安装,请启动一个新的 CentOS 8 服务器或实例,并使系统达到最新状态:

$ sudo yum update -y

这通常会持续一段时间。在等待的时候给自己拿杯咖啡。

这个安装有两部分:第一部分是安装 yum 版本的 HAProxy,第二部分是编译和安装你的二进制文件,用最新的版本覆盖以前的 HAProxy。用 yum 安装,在生成 systemd 启动脚本等方面做了很多繁重的工作,所以运行 yum install ,然后从源代码编译,用最新的版本覆盖 HAProxy 二进制:

$ sudo yum install -y haproxy

启用 HAProxy 服务:

$ sudo systemctl enable haproxy

要升级到最新版本(版本 2.2,截至本文写作为止),请编译源代码。许多人认为从源代码编译和安装一个程序需要很高的技术能力,但这是一个相当简单的过程。首先,使用安装一些提供编译代码工具的软件包:

$ sudo yum install dnf-plugins-core$ sudo yum config-manager --set-enabled PowerTools$ sudo yum install -y git ca-certificates gcc glibc-devel \lua-devel pcre-devel openssl-devel systemd-devel \make curl zlib-devel

使用获得最新的源代码,并改变到目录:

$ git clonehaproxy$ cd haproxy

运行以下三个命令来构建和安装具有集成了 Prometheus 支持的 HAProxy:

$ make TARGET=linux-glibc USE_LUA=1 USE_OPENSSL=1 USE_PCRE=1 \PCREDIR= USE_ZLIB=1 USE_SYSTEMD=1 \EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"$ sudo make PREFIX=/usr install # 安装到 /usr/sbin/haproxy

通过查询版本来测试它:

$ haproxy -v

你应该看到以下输出:

HA-Proxy version 2.2.4-b16390-23 2020/10/09 -

创建后端服务器

HAProxy 并不直接提供任何流量,这是后端服务器的工作,它们通常是网络或应用服务器。在这个练习中,我使用一个叫做Ncat的工具,它是网络领域的“瑞士军刀”,用来创建一些极其简单的服务器。安装它:

$ sudo yum install nc -y

如果你的系统启用了SELinux,你需要启用端口 8404,这是用于访问 HAProxy 统计页面的端口(下面有解释),以及你的后端服务器的端口:

$ sudo dnf install policycoreutils-python-utils$ sudo semanage port -a -t http_port_t-p tcp 8404$ sudo semanage port -a -t http_port_t-p tcp 10080$ sudo semanage port -a -t http_port_t-p tcp 10081$ sudo semanage port -a -t http_port_t-p tcp 10082
实现网络流量的负载平衡

创建两个 Ncat 网络服务器和一个 API 服务器:

$ while true ;donc -l -p 10080 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server ONE"' ;done &$ while true ;donc -l -p 10081 -c 'echo -e "HTTP/1.1 200 OK\n\n This is Server TWO"' ;done &$ while true ;donc -l -p 10082 -c 'echo -e "HTTP/1.1 200 OK\nContent-Type: application/json\n\n { \"Message\" :\"Hello, World!\" }"' ;done &

这些简单的服务器打印出一条信息(如“This is Server ONE”),并运行到服务器停止为止。在现实环境中,你会使用实际的网络和应用程序服务器。

修改 HAProxy 的配置文件

HAProxy 的配置文件是/etc/haproxy/haproxy.cfg。你在这里进行修改以定义你的负载平衡器。这个基本配置将让你从一个工作的服务器开始:

globallog127.0.0.1 local2userhaproxygrouphaproxydefaultsmodehttplogglobaloptionhttplogfrontend mainbind *:80default_backend webuse_backend api if { path_beg -i /api/ }#-------------------------# SSL termination - HAProxy handles the encryption.#To use it, put your PEM file in /etc/haproxy/certs#then edit and uncomment the bind line (75)#-------------------------# bind *:443 ssl crt /etc/haproxy/certs/haproxy.pem ssl-min-ver TLSv1.2# redirect scheme https if !{ ssl_fc }#-----------------------------# Enable stats atstatsbind *:8404stats enablestats uri /stats#-----------------------------# round robin balancing between the various backends#-----------------------------backend webserver web1 127.0.0.1:10080 checkserver web2 127.0.0.1:10081 check#-----------------------------# API backend for serving up API content#-----------------------------backend apiserver api1 127.0.0.1:10082 check

重启并重新加载 HAProxy

HAProxy 可能还没有运行,所以发出命令sudo systemctl restart haproxy来启动(或重新启动)它。“重启” 的方法在非生产情况下是很好的,但是一旦你开始运行,你要养成使用sudo systemctl reload haproxy的习惯,以避免服务中断,即使你的配置中出现了错误。

例如,当你对/etc/haproxy/haproxy.cfg进行修改后,你需要用sudo systemctl reload haproxy来重新加载守护进程,使修改生效。如果有错误,它会让你知道,但继续用以前的配置运行。用sudo systemctl status haproxy检查 HAProxy 的状态。

如果它没有报告任何错误,你就有一个正在运行的服务器。在服务器上用测试,在命令行输入curl。如果你看到 “This is Server ONE”,那就说明一切都成功了!运行几次,看着它在你的后端池中循环,然后看看当你输入curl时会发生什么。在 URL 的末尾添加将把所有的流量发送到你池子里的第三个服务器。至此,你就有了一个正常运作的负载平衡器

检查你的统计资料

你可能已经注意到,配置中定义了一个叫做的前端,它的监听端口是 8404:

frontend statsbind *:8404stats uri /statsstats enable

在你的浏览器中,加载。阅读 HAProxy 的博客学习 HAProxy 的统计页面,了解你在这里可以做什么。

一个强大的负载平衡器

虽然我只介绍了 HAProxy 的几个功能,但你现在有了一个服务器,它可以监听 80 和 443 端口,将 HTTP 流量重定向到 HTTPS,在几个后端服务器之间平衡流量,甚至将匹配特定 URL 模式的流量发送到不同的后端服务器。你还解锁了非常强大的 HAProxy 统计页面,让你对你的系统有一个很好的概览。

这个练习可能看起来很简单,不要搞错了,你刚刚建立和配置了一个非常强大的负载均衡器,能够处理大量的流量。

为了你方便,我把本文中的所有命令放在了GitHub Gist中。



变压器二次侧短路,一次侧会烧坏吗?

次级短路后,较大的短路电流抵消着初级产生的磁通,初级线圈需从电源索取接近短路的电流来平衡磁场,较大的电流瞬间超过额定电流多倍,线圈承受不了大电流的高热而烧毁。 从变压器的功率角度来考虑:一次侧的功率P_1=各种损耗P_0 + 负载的功率P_2所以,二次侧短路时,负载功率P_2为0;二次侧过负荷时P_2大于额定功率P_n。 可见,负载功率的变化必定会引起一次侧发出功率P_1与之平衡,即变压器二次侧短路或过负荷,对一次侧有影响。

宝马X1和奥迪Q5哪个好?

推荐奥迪Q5

奥迪Q5是以奥迪A4的生产平台为基础开发的一款紧凑型SUV车型。 奥迪Q5的时尚外型延续了奥迪Q7的设计风格,奥迪招牌式的镀铬“大鬼脸”,彰显其时尚与动感的设计风格。 其一体式前大灯,比A4车型看起来更显活泼。 奥迪Q5的尾部设计,则结合了奥迪A3运动版及新A4的风格。 但在在内部空间上,奥迪Q5比起奥迪Q7略显单薄,只能容纳5个人。 奥迪Q5配备了TorsenAWD系统,使其四轮全驱能够实现40/60的动力划分。 其相当强的运动能力,从它的高耸的悬挂和对应的空气动力套件就能看出来。 另外,奥迪Q5还配备了高度可调式空气式悬挂、下坡控制系统等高科技电子装备。

从外形尺寸上就可以显出它的与众不同——奥迪Q5长4.63米,宽1.88米,而高度只有1.65米,低达0.33的风阻系数创下了同级别车型中的最佳纪录。 这些都使奥迪Q5比其他任何同级车都更具运动设计特征。 奥迪Q5有三种不同的外部设计:黑色(标准)、对比漆、同色车身漆。 此外还有两款外饰包可供选择。 “Sline个性风格外饰包”使得这款高性能SUV的运动特征尽显无遗,与此同时,另一款包括车底防护前后裙以及19寸轮毂的“越野风格包”则使Q5显得尤为彪悍。 奥迪方面一再强调Q5的风阻系数达到了让人非常满意的0.33,为同级最佳,这点对于有效降低Q5的实际油耗有很大的帮助,毕竟油耗是目前SUV最需要克服的发展障碍。 取得这样数据的最大功劳来自于优化的底盘设计,在Q5底盘上被覆盖了两块平板,让车底的气流效率更高。 这种做法其实来自于超级跑车,但原本的意思是为了增加下压力,平滑的底盘能够加快彻底气流流速,而下压力在公式中正可以简单理解为上下部空气流速比。 当然,这样的做法也可以在一定程度上减少空气阻力,Q5所看重的正是这点。

先进技术

奥迪Q5还配备了多套高尖端技术,使得驾驶体验更加魅力无限。 作为选配,“奥迪驾驶模式选项”可以控制各种技术部件的运行方式,只需按下按钮,驾驶者即可通过该系统选择汽车的三种行驶模式:舒适模式、自动模式和动态模式。 此外,安装了MMI系统的车型将会提供个性化模式供车主自己设置。 “奥迪驾驶模式选项”可以和两款创新装置同时提供,一种是“可控运动悬架系统”,另一种是“奥迪动态转向系统”。 后者可以使方向盘转向比和转向助力根据车速无级变化,使转向在泊车时更为轻巧,而高速行驶时则更为沉稳。 在紧急情况下,转向系统与ESP系统相互配合,只需稍做调整,便能转危为安。 作为一款高性能SUV,奥迪Q5的配置极为丰富,多款高科技模块配件则提供了强大的多媒体功能——包括蓝牙电话、DVD播放器、电视接收器、iPod接口以及带有8个扬声器的来自丹麦专业顶级音响品牌Bang&Olufsen的顶级音响系统。 高端导航系统以一台高清显示器显示新版三维地图。 该系统使用的硬盘也可以存储MP3格式的音乐数据。

安全性能

奥迪Q5将搭载源于顶级豪华车的安[1]全驾驶辅助系统和高科技装备。 包括配备车尾摄像头的奥迪驻车辅助系统;奥迪车道辅助系统,该系统用于辅助维持行车路线;以及奥迪侧向辅助系统,该系统可以对驾驶员危险的变道行为发出警告;自适应巡航控制系统可以保持车速以及与前车的距离。 奥迪Q52.81米长的轴距在同级别车型中首屈一指,宽敞的乘坐空间容纳五名乘员绰绰有余。 座椅完全根据人体工程学设计,且可以灵活布局。 只要轻轻触动行李箱里的遥控手柄,后排座椅就会自动向前折叠,从而使行李箱的容积从540升增加到1560升,而在行李箱底部还配有一个附加储物空间。 选配项目包括行李轨道固定装置、分隔网以及保护槽。 奥迪Q5可谓是一个同时适用于运动、休闲和家庭使用的多面天才。 客户可以选择奥迪的后座增强配置,可使后座纵向滑动100毫米,从而提供更加宽敞的储物空间。 Q5的标准配置包括多个实用储物格、饮料/水杯托以及电源插座等等。 而选配的项目则包括可保温的饮料托以及在副驾驶座位下方设计巧妙的储物装置组合。 顶尖的安全性能装置是奥迪产品必不可少的元素。 对于前排驾乘人员,安全带限力器和气囊之间采用了一种新的智能配合工作方式。 奥迪Q5车身大部分由高强度和超高强度钢材构成。 这些材料在降低车重的同时,使车辆具有很高的碰撞安全性、车身刚性和抗震性能,而车身外观接缝精度依然是业界标杆。

动力操控

奥迪Q5配备有三款发动机可供选择——一款TFSI汽油发动机和两款TDI柴油发动机。 三款发动机都采用燃油直喷和涡轮增压技术,动力澎湃、牵引力强劲且运行宁静,并在节能方面有卓越表现。

TFSI详述

奥迪Q5配备的是一款经过重新设计的2.0TFSI发动机。 这款四缸发动机结合了三大顶尖科技——涡轮增压、汽油直喷和AVS可变气门升程系统。 只需到1500转/分钟,这款发动机就可实现350牛·米的扭矩峰值,并一直持续到4200转/分钟,最大功率达155千瓦(211马力)。 奥迪Q52.0TFSI可在7.2秒内完成0-100公里/小时的加速,最高车速可达222公里/小时,而平均油耗仅8.5升/100公里。 2.0TDI发动机配备了一款6速手动变速器。 3.0TDI与2.0TFSI车型都采用了一项创新技术——新款7速Stronic双离合变速器。 这一高科技装置可以在百分之几秒内进行换档,同时运行方式平稳,工作效率最佳。 该7速Stronic变速器可以完全自动换档或手动操作,客户根据需求还可以选配方向盘上的拨片换挡功能。 如专业媒体眼中的最佳中级轿车——新一代奥迪A4一样,新款Q5也将其传动装置的位置进行了重新组合——差速器安置于离合器之前,紧靠发动机后侧。 这一解决方案将前轴位置大大前移,从而带来更长的轴距和更为理想的轴载分配。 这赋予了奥迪Q5特有的优势——稳健行驶、高舒适度和激动人心的运动性能。

驱动技术

作为全轮驱动技术的先驱,奥迪为Q5配备了最新一代的quattro全时四驱系统。 这套系统在正常运转时将动力以40:60的比例在前后轴进行分配——这一强调后部动力的分配可以提高驾驶乐趣。 需要时,这套驱动系统可将最大达65%的力矩传输到前轴,也可以将最大达85%的力矩传到后轮。 新款奥迪Q5的行驶机构也重点突出了运动特质。 五连杆前悬架和梯形连杆后悬架大部分采用铝制材料。 大型制动 装置提供了良好的减速效果。 标配的17英寸轮毂由轻质合金铸造而成,并装用235/65/17轮胎,根据需要奥迪还可以提供最大达20英寸的大尺寸合金轮毂以供选装。 奥迪Q5驾驶起来动力十足、操控精确自然,而且安全性能出众。 新近研发的新一代ESP电子稳定系统经过改进增加了创新功能,通过传感器,ESP甚至可以感应到车顶行李架的负载(车顶负载最高可达100千克),那么ESP将把原先记录的重心参数调高,ESP介入的临界负载值将随之调整。 当没有车顶负载时,ESP将让驾驶者可以完全享受这款奥迪Q5的操控潜能。 新款奥迪Q5是一款全用途、全路况车型。 高达2吨的挂车负载证明了其是最为强劲的拖车,即使在崎岖不平的路面上也能达到卓越的驾驶性能。 标配的山路下坡辅助系统,可以在30公里时速之内下坡过程时自动保持预先设定的速度,可以使下坡更加安全。 电子稳定系统ESP功能是越野驾驶的得力助手。 越野时ESP确保车辆达到最大牵引力状态,而ABS可以自行识别路面状况,并为沙地、石子地或卵石地选择最佳控制策略。 奥迪Q5的爬坡能力颇为出众,达到31度。 由于Q5的前悬挂很短,接近角达到了25度,由于长轴距,离去角为17.5度。 Q5的离地间隙达20厘米,并可通过最深50厘米的水面。

运动能力

在德系豪车的阵营中,奔驰讲求的是乘坐的舒适性,而宝马则在操控上独占鳌头,那么这款新奥迪又将把触角伸向哪里呢?从新A4的角度上我们可以看出,奥迪走的是一条平衡路线,不仅要求空间更大更舒适,而且在操控上也通过底盘的重新设计实现了更好的配重比例。那么,在这款低矮Q5的身上,它的运动能力表现如何呢?

同任何一款奥迪车一样,Q5的动力清单上也有非常丰富的动力配置,从可能登陆中国市场的汽油机配置来看,最低端的是直喷涡轮增压的2.0T四缸发动机,紧随其后的是3.2升的V6机型。 在这两款车上,我们都将看到换挡高效,平顺的七档双离合器片的Stronic变速箱,不过如果国产的话,可能使用DSG变速箱的几率并不大。 应该还是传统的六档Tiptronic自动变速器。 此次试驾的这款3.2升FSIV6车型能够输出270马力的最大功率和370牛米的最大扭矩,配备了双离合器的Q5基本上感觉不到任何换挡冲击,这种舒畅的驾乘感觉就像是开着一辆CVT的车子一样,再加上全景式天窗的陪伴,相当惬意。 但如果你真的需要感受它卓越的运动能力,它的快速反应将告诉你DSG变速器的另一大优点。 不过说实话,这款发动机的中低转扭矩输出并不如EX35的那款3.5升V6发动机来的迅猛,总的来说应该算的上够用,但谈不上动力充沛,因此相比之下,对它的运动能力有一定影响。 在加速时间上,双离合器的3.2版车型百公里加速成绩为6.8秒,与对手们相比谈不上什么优势。 比如EX35的百公里加速时间为6.3秒,X3的时间为7.2秒。 但奥迪称根据他们的测试结果,虽然加速成绩不够理想,但油耗却比较经济,城市路况在12升左右,而高速上可以控制在10个油,在油比黄金贵的今天,这款3.2升发动机的燃油经济性表现可圈可点。

总结

显然这并不是一款能够在哪个方面完全超越对手的奥迪,但奥迪似乎在继续着自己的理性中庸哲学,并将这种平衡推向极致。 从豪华感觉上,奥迪Q5要胜过X3和GLK,而在实用性上又要强于EX35,而在价格上,具其内部人士称,将会与其对手有更明显的价格优势。 总之,这虽然可能并不是一款破板之车,但却为自己的大厦做出了新的努力。

望采纳答案,感谢了!

配变低压无功补偿和高压无功补偿有何区别?一般采用何种补偿方式?

区别:1、线路损耗不同:低压补偿一般的距需要无功的负载近一些,有利于减少线路损耗。 而在高压侧进行补偿,在高压网络往上部分的损耗减少了,可是这台变压器以下的无功引起的有功损耗没有减少。 2、用的地方不同:需要无功功率的地方进行无功补偿。 如果负载是高压的,高压侧补偿比较合理。 负载高压低压都有,也可以高低压都进行补偿。 采用方式:需要无功功率的地方进行无功补偿。 当负载是高压时,高压侧补偿比较合理。 负载高压低压都有,也可以高低压都进行补偿。 低压无功补偿应用的技术:JKWB型低压配电监测无功补偿装置是采用了一系列领先的技术和最新的电子元器件及新型的机电一体化的SLFK型智能复合开关元件,集电网监测与无功补偿于一体。 不但可以补偿电网中的无功损耗,提高功率因数,降低线损,从而提高电网的负载能力和供电质量;同时还能够实时监测电网的三相电压、电流、功率因数等运行数据。 高压无功补偿的技术特点:与电动机并联连接,与电动机同时起动和停止运行;无功就地补偿容量按照小于电动机空载无功容量计算,避免和电动机产生自激振荡。 单台电容器安装电容器专用保险,使成套装置具有过流保护;使无功功率就地平衡,是最有效的补偿方法;安装简单,操作方便,运行安全可靠。 扩展资料:低压无功补偿的特点:1、控制物理量为无功功率。 2、在国内首家采用智能低压电子复合开关作开关元件,彻底解决了电容投入时的浪涌电流问题,无触头烧损之虑,无需散热,更不会产生谐波注入,安全可靠性高。 3、具有完善的过压、欠压、缺相、谐波等保护措施。 JKWN型配电监测无功补偿控制器,集电压表、电流表、功率因数表、负荷指示仪、电压监测仪等于一体,是配电管理自动化的必要设备。 能监测配电变压器的运行状态,为判断配电变压器是超负荷运行、还是欠负荷运行、三相负荷是否平衡提供真实的科学依据,为计算供电可靠性、供电质量、低压网损等提供了最基本的资料。 为配电网的改造、设备的增容提供了可靠的数据。 高压无功补偿:主要用于电网中非线性负荷的用户,如整流、变频调速、中频加热、冶金电解、化学电解等电力电子设备的工业领域;电气化铁道、地下铁道、无轨电车等交通领域;广播、对谐波干扰敏感的IT产业领域;以及对电能质量要求严格的会展中心、商业大厦等领域。 广泛涉及电力、汽车、冶金、机械制造、化工、造纸、煤炭、造船、通讯、机场、大型场馆、高层建筑等场所和行业。 参考资料来源:网络百科-高压无功补偿参考资料来源:网络百科-低压无功补偿

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐