目录
3.在/etc下创建Haproxy目录并将/opt内的Haproxy复制过去
一.haproxy简介
HAProxy是可提供高可用性、负载均衡以及基于TcP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。HProxy非常适用于并发大(并发达1w以上) web站点,这些站点通常又需要会话保持或七层处理。HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上。
1.支持的功能
-
TCP 和 HTTP反向代理
-
SSL/TSL服务器
-
可以针对HTTP请求添加cookie,进行路由后端服务器
-
可平衡负载至后端服务器,并支持持久连接
-
支持所有主服务器故障切换至备用服务器
-
支持专用端口实现监控服务
-
支持停止接受新连接请求,而不影响现有连接
-
可以在双向添加,修改或删除HTTP报文首部
-
响应报文压缩
-
支持基于pattern实现连接请求的访问控制
-
通过特定的URI为授权用户提供详细的状态信息
2.常用调度算法
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
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
刷新