`
文章目录
- 一、HAproxy
- 1.HAProxy是什么
- 2.HAProxy的核心能力和关键特性
- 3.LVS、Nginx、HAproxy的区别:
- 二、实验步骤
- 1.Haproxy搭建 Web 群集
- 总结
一、HAproxy
1.HAProxy是什么
HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。
HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速(最新稳定版1.7.2于2017/01/13推出)。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。
因为HAProxy的上述优点,它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。
2.HAProxy的核心能力和关键特性
HAProxy的核心功能
负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
健康检查:支持TCP和HTTP两种健康检查模式
会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
HTTP请求重写与重定向
监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态
3.LVS、Nginx、HAproxy的区别:
●LVS基于Linux操作系统内核实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;
●LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
●LVS因为工作在ISO模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态检测方式;
●HAProxy功能强大,但整体性能低于4层模式的LVS负载均衡。
●Nginx主要用于Web服务器或缓存服务器。Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。
二、实验步骤
1.Haproxy搭建 Web 群集
Haproxy服务器:192.168.169.10
Nginx 服务器1:192.168.169.20
Nginx 服务器2:192.168.169.30
客户端:192.168.169.40
----------------------haproxy 服务器部署--------------------------------
1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下
systemctl stop firewalld
setenforce 0
可以自行下载haproxy-1.5.19.tar.gz的包
2.编译安装 Haproxy
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
tar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install
3.Haproxy服务器配置
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/
cd /etc/haproxy/
vim haproxy.cfg
修改配置文件
global #全局配置,主要用于定义全局参数,属于进程级的配置,通常和操作系统配置有关
–4~5行–修改,定义haproxy日志输出设置和日志级别,local0为日志设备,默认存放到系统日志
log /dev/log local0 info #修改
log /dev/log local0 notice #修改
#log loghost local0 info
maxconn 4096 #最大连接数,需考虑ulimit -n限制,推荐使用10240
–8行–注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉
#chroot /usr/share/haproxy
uid 99 #用户UID
gid 99 #用户GID
daemon #守护进程模式
nbproc 1 #添加,设置并发进程数,建议与当前服务器CPU核数相等或为其2倍
去浏览器测试一下http:192.169.169.10/index.html
继续刷新一下ok实现负载均衡