目录
一.haproxy简介
1.支持的功能
2.常用调度算法
1.RR 轮询
2.LC 最小连接数
3.SH 来源访问调度算法
3.LVS、Nginx、HAproxy的区别
二.haproxy搭建
1.Haproxy服务器(192.168.68.200)
1.关闭防火墙喝selinux
2.编译安装haproxy
3.在/etc下创建Haproxy目录并将/opt内的Haproxy复制过去
4.修改主配置文件haproxy.cfg
5.添加haproxy 系统服务
2.HTTP服务器1(192.168.68.30)
3.HTTP服务器(192.168.68.30)
4.测试
一.haproxy简介
HAProxy是可提供高可用性、负载均衡以及基于TcP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。HProxy非常适用于并发大(并发达1w以上) web站点,这些站点通常又需要会话保持或七层处理。HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上。
1.支持的功能
-
TCP 和 HTTP反向代理
-
SSL/TSL服务器
-
可以针对HTTP请求添加cookie,进行路由后端服务器
-
可平衡负载至后端服务器,并支持持久连接
-
支持所有主服务器故障切换至备用服务器
-
支持专用端口实现监控服务
-
支持停止接受新连接请求,而不影响现有连接
-
可以在双向添加,修改或删除HTTP报文首部
-
响应报文压缩
-
支持基于pattern实现连接请求的访问控制
-
通过特定的URI为授权用户提供详细的状态信息
2.常用调度算法
1.RR 轮询
TCP 和 HTTP反向代理
SSL/TSL服务器
可以针对HTTP请求添加cookie,进行路由后端服务器
可平衡负载至后端服务器,并支持持久连接
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持停止接受新连接请求,而不影响现有连接
可以在双向添加,修改或删除HTTP报文首部
响应报文压缩
支持基于pattern实现连接请求的访问控制
通过特定的URI为授权用户提供详细的状态信息
1.RR 轮询
RR算法是最简单最常用的一种算法,轮询调度
2.LC 最小连接数
最小连接,根据后端的节点连接数大小动态分配前端请求
3.SH 来源访问调度算法
基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、cookie等做集群调度
3.LVS、Nginx、HAproxy的区别
-
IVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;
-
LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
-
LVs因为工作在TCP模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URI等多种状态检测方式;
-
HAProxy功能强大,但整体性能低于4层模式的IVS负载均衡。
-
Ngrinx主要用于web服务器或缓存服务器。Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。
二.haproxy搭建
Haproxy服务器:192.168.68.200
http 服务器1:192.168.68.30
http 服务器2:192.168.68.105
客户端:192.168.68.138
1.Haproxy服务器(192.168.68.200)
1.关闭防火墙喝selinux
IVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;
LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
LVs因为工作在TCP模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URI等多种状态检测方式;
HAProxy功能强大,但整体性能低于4层模式的IVS负载均衡。
Ngrinx主要用于web服务器或缓存服务器。Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。
Haproxy服务器:192.168.68.200
http 服务器1:192.168.68.30
http 服务器2:192.168.68.105
客户端:192.168.68.138
1.Haproxy服务器(192.168.68.200)
1.关闭防火墙喝selinux
2.编译安装haproxy
将haproxy包传到/opt文件夹下
百度网盘自取
链接:https://pan.baidu.com/s/18DqzlxjdOlbyKJKU_J-1Dw
提取码:yjcs
[root@localhost ~]# cd /opt/
3.在/etc下创建Haproxy目录并将/opt内的Haproxy复制过去
4.修改主配置文件haproxy.cfg
defaults配置默认不需要修改 33行后面的配置都删掉
5.添加haproxy 系统服务
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# cd /opt/ [root@localhost opt]# rz -E rz waiting to receive. [root@localhost opt]# ls haproxy-1.4.24.tar.gz [root@localhost opt]# yum -y install pcre-devel bzip2-devel gcc gcc-c++ make [root@localhost opt]# ls haproxy-1.4.24 haproxy-1.4.24.tar.gz [root@localhost opt]# cd haproxy-1.4.24/ [root@localhost haproxy-1.4.24]# uname -r 3.10.0-693.el7.x86_64 [root@localhost haproxy-1.4.24]# make TARGET=linux2628 ARCH=X86_64 [root@localhost haproxy-1.4.24]# make install [root@localhost haproxy-1.4.24]# mkdir /etc/haproxy [root@localhost haproxy-1.4.24]# cd examples/ [root@localhost examples]# cp haproxy.cfg /etc/haproxy/ [root@localhost examples]# cd /etc/haproxy/ [root@localhost haproxy]# vim haproxy.cfg 3 global 4 log /dev/log local0 info 5 log /dev/log local0 notice 6 #log loghost local0 info 7 maxconn 4096 8 #chroot /usr/share/haproxy 9 uid 99 10 gid 99 11 nbproc 1 12 daemon 13 #debug 14 #quiet ###defaults配置默认不需要修改 33行后面的配置都删掉 28 listen webcluster 0.0.0.0:80 29 option httpchk GET /index.html 30 balance roundrobin 31 server inst1 192.168.68.30:80 check inter 2000 fall 3 32 server inst2 192.168.68.105:80 check inter 2000 fall 3 /opt/haproxy-1.4.24/examples [root@localhost examples]# cp haproxy.init /etc/init.d/haproxy [root@localhost examples]# chmod +x /etc/init.d/haproxy [root@localhost examples]# chkconfig --add haproxy [root@localhost examples]# ln -s /usr/local/sbin/haproxy /usr/sbin/ [root@localhost examples]# service haproxy start
2.HTTP服务器1(192.168.68.30)
[root@localhost html]# vim index.html
[root@localhost opt]# systemctl stop firewalld.service [root@localhost opt]# setenforce 0 [root@localhost opt]# yum install -y httpd [root@localhost opt]# cd /var/www/html/ [root@localhost html]# vim index.html hello oyyyyy!!!!!! [root@localhost html]# systemctl start httpd.service
3.HTTP服务器(192.168.68.30)
[root@localhost html]# vim index.html
4.测试
在客户端中输入192.168.68.200
刷新



