Haproxy的介绍及详细安装过程

HAProxy简介

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现。

HAProxy 优缺点

1、HAProxy 支持两种代理模式 TCP(四层)和HTTP(七层),也是支持虚拟主机的。
2、HAProxy 的优点能够补充 Nginx 的一些缺点,比如支持 Session 的保持,Cookie 的引导;同时支持通过获取指定的 url 来检测后端服务器的状态。
3、HAProxy 跟 LVS 类似,本身就只是一款负载均衡软件;单纯从效率上来讲 HAProxy 会比 Nginx 有更出色的负载均衡速度,在并发处理上也是优于 Nginx 的。
4、HAProxy 支持 TCP 协议的负载均衡转发,可以对 MySQL 读进行负载均衡,对后端的 MySQL 节点进行检测和负载均衡,大家可以用 LVS+Keepalived 对 MySQL 主从做负载均衡。
5、支持url检测后端的服务器出问题的检测会有很好的帮助。
6、HAProxy 负载均衡策略非常多:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie).更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
7、不能做Web服务器即Cache。
8、根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom’s 10GbE NICs (Myri-10G PCI-Express),这个作为软件级负载均衡,也是比较惊人的;
9、HAProxy支持虚拟主机
10、经过官方测试统计,haproxy 单位时间处理的最大请求数为20000个,可以同时维护40000-50000个并发连接,最大数据处理能力为10Gbps。综合上述,haproxy是性能优越的负载均衡、反向代理服务器。

Nginx与Haproxy比较:Nginx支持七层、用户量最大,稳定性比较可靠。Haproxy支持四层和七层,支持更多的负载均衡算法,支持session保存等。具体选型看使用场景,目前来说Haproxy由于弥补了一些Nginx的缺点用户量也不断在提升。

HAProxy工作原理

HAProxy由前端(frontend)和后端(backend),前端和后端都可以有多个。也可以只有一个listen块来同时实现前端和后端。这里主要讲一下frontend和backend工作模式。
前端(frontend)区域可以根据HTTP请求的header信息来定义一些规则,然后将符合某规则的请求转发到相应后端(backend)进行处理。

下面直接开始实验 (只展示安装,七层代理用法在下一篇文章展示)

首先下载我们的Haproxy和lua,可以在官网下载

Haproxy官网下载地址
lua官网下载地址

下载以后解压,随便解压到哪个目录都行,编译安装的时候注意目录就行


tar -zxvf lua-5.4.5.tar.gz
tar -zxvf haproxy-2.8.3.tar.gz 

查看我们的解压目录

[root@server153 ~]# ls 
anaconda-ks.cfg  haproxy-2.8.3.tar.gz  lua-5.4.5.tar.gz
haproxy-2.8.3    lua-5.4.5             original-ks.cfg

然后下载一些需要依赖包

yum   install  -y  gcc  zlib-devel  pcre-devel  openssl-devel  systemd-devel

然后进入lua解压目录进行编译安装

[root@server153 ~]# cd lua-5.4.5/
[root@server153 lua-5.4.5]# make linux test
[root@haproxy9 lua-5.4.5]# make install

安装完毕以后lua -v能看到版本信息就可以了

[root@server153 lua-5.4.5]#  lua -v
Lua 5.4.5  Copyright (C) 1994-2023 Lua.org, PUC-Rio

然后进到haproxy目录进行编译然后安装,看到安装后的目录就是成功了

[root@server153 haproxy-2.8.3]# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/lib    LUA_LIB=/usr/local/lib
[root@server153 haproxy-2.8.3]# make install  PREFIX=/usr/local/haproxy2.8
[root@server153 haproxy-2.8.3]# ls /usr/local/haproxy2.8/
doc  sbin  share

然后编写systemctl控制脚本

[root@server153 haproxy-2.8.3]# vim  /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
 
[Service]
ExecStartPre=/usr/local/haproxy2.8/sbin/haproxy  -f /etc/haproxy.cfg -c -q
ExecStart=/usr/local/haproxy2.8/sbin/haproxy  -Ws -f /etc/haproxy.cfg -p /usr/local/haproxy2.8/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

然后重新加载配置

[root@server153 haproxy-2.8.3]# systemctl  status haproxy.service
● haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Haporxy的安装到这里就完成了

下一篇文章展示Haproxy七层代理的用法

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值