使用Haproxy搭建Web群集

使用Haproxy搭建你Web群集

技能展示::
熟悉Haproxy功能及常用群集调度算法
学会Haproxy常用配置
学会Haproxy参数优化
简介
在前面已经学习了使用Nginx. LVS做负载均衡群集,它们都具有各自的特点,本章将要介绍另、一款比较流行的群集调度工具Haproxy,首先介绍负载均衡常用调度算法,然后介绍Haproxy搭建Web群集的方法,最后介绍Haproxy的参数优化和日志配置。
重点
负载均衡常用调度算法
使用Haproxy搭建Web群集
理论讲解
1.案例概述
Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx,相比较而言, LVS性能最好,但是搭建相对复杂, Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好. Haproxy官方网站是http://www.heproy.org).本案例介绍使用Haproxy及Nginx搭建一套Web群集。
2.例前置知识点

  1. HTTP请求通过UAL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求, HTTP请求的方式分为GET方式和POST方式。当使用浏览器访问某一个URL,会根据请求URL返回状态码,通常正常的状态码为2×x. 3xx(如200, 301),如果出现异常会返回4×x. 5x x(如400. 500)。
    例如,访问http://ww.test.com/a.phpld-123,就是一个GET请求,如果访问正常,会从服务器的日志中获取200状态码,假如此请求使用POST方式,那么传递给a.php的d参数依旧是123,但是浏览器的URL将不会显示后面的1ad-123字样,因此表单类或者有用户名、密码等内容提交时建议使用POST方式,不管使用哪种方式,最终a.php获取的值是一样的。
    2)负载均衡常用调度算法LVS, Haproxy, Nginx最常用的调度算法有三种,如下所述。(1) R (Round Robin). R算法是最简单最常用的一种算法,即轮询调度。例如,有三个节点A.B.C,第一个用户访问会被指派到节点A,第二个用户访问会被指派到节点B,第三个用户访问会被指派到节点C,第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡效果。此算法还有一种加权轮询 即根据每个节点的权重轮询分配访问请求。
    (2) LC (Least Cornections), LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求。例如,有三个节点A. B. C,各节点的连接数分别为A:4. B:5, C:6,此时如果有第一,个用户连接请求,会被指派到A上,连接数变为A:5, B:5, C:6;第二个用户请求会继续分配到A上,连接数变为A:6, B:5, C:6,再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端。由于实际情况下A. B.C的连接数会动态释放,很难会出现一样连接数的情况,因此此算法相比较r算法有很大改讲 是目前用到比较多的一种算法。
    (3) SH (Source Hashing). SH即基于来源访问调度算法,此算法用于一些有Session会话记录在服务器端的场景,可以基于来源的P. Cookie等做群集调度。例如,使用基于源P的群集调度算法有三个节点A, B. C,第一个用户第一次访问被指派到了A,第二个用户第一次访问被指派到了B·当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问都会被指派到B,实现群集的调度,此调度算法好处是实现会话保持,但某些P访问量非常大时会引起负载不均衡,部分节点访问量超大,影响业务使用。
    3)常见的Web群集调度器目前常见的Web群集调度器分为软件和硬件,软件通常使用开源的LVS, Haproxy. Nginx, 硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如楼子鱼,绿盟等。

1.haproxy的作用和特点
1)haproxy的作用
负载均衡调度器
2)haproxy的特点
支持高并发
加快用户访问速度
支持会话保持
占用系统资源小
2.常见负载均衡工具
1)Nginx
集成网站反向代理和缓存功能为一体
占用系统资源小支持高并发
企业一般当成代理或者缓存服务器使用
2)LVS
负载均衡调度器
不支持缓存
针对应用层协议实现负载均衡
不支持故障检查
故障检查不需要和keepalived结合
3)Haproxy
负载均衡调度器
支持高并发功能
针对四层和七层实现负载均衡
保持用户会话信息
3.http请求和常见的状态码
1)http请求
PORT:提交数据使用,安全性强
get:下载数据使用,安全性差
2)常见的http装填码
200:请求成功
202:请求被响应
301:永久重定向
302:临时跳转
305:使用代理
307:代理服务器重定向到当前服务器上
400:客户端故障
403:服务器拒绝客户端
404:管理员定义错误页面
500:服务器故障
501:服务器不支持客户端的请求
502:代理服务器收到无效请求
505:服务器不支持http协议版本
4.常见负载均衡调度器类型
1)软件
开源成本低
2)硬件
成本高
收费
速度快
3)第三方开发
绿盟
梭子鱼
二.负载均衡调度器算法和haproxy配置
1.负载均衡调度算法
1)RR
轮询
流量平均分配
2)LC
最小连接
负载量低的服务器多承担访问高的少承担访问
3)sh
基于来源调度算法
一般针对不同地理位置服务实现
2.安装haproxy
1)安装依赖关系
[root@centos03 ~]# yum -y install pcre-devel zlib-devel bzin2-devel
2)配置haproxy支持64位系统
[root@centos03 haproxy-1.4.24]# make TARGET=linux26
3)安装haproxy
[root@centos03 haproxy-1.4.24]# make install
4)创建haproxy配置文件目录生成主配置文件
[root@centos03 ~]# mkdir /etc/haproxy
[root@centos03 ~]# cp /usr/src/haproxy-1.4.24//examples/haproxy.cfg /etc/haproxy/
5)生成haproxy服务控制文件
[root@centos03 ~]# cp /usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[root@centos03 ~]# chmod +x /etc/init.d/haproxy
6)添加系统服务设置开机自动启动
[root@centos03 ~]# chkconfig --add haproxy
[root@centos03 ~]# chkconfig --level 35 haproxy on
7)配置haproxy主配置文件
[root@centos03 ~]# vim /etc/haproxy/haproxy.cfg
listen apache 192.168.200.10:80
option httpchk /index.html
balance roundrobin
server web01 192.168.100.10:80 check inter 2000 fall 3
server web02 192.168.100.20:80 check inter 2000 fall 3
8)创建临时文件夹
[root@centos03 ~]# mkdir /usr/share/haproxy
9)守护进程运行haproxy
[root@centos03 ~]# systemctl daemon-reload
[root@centos03 ~]# systemctl start haproxy
centos01和centos02设置网关
centos03开启路由功能,设置外网
开启Windows10虚拟机,设置外网vm2
使用Haproxy搭建Web群集
使用Haproxy搭建Web群集
测试!!!
使用Haproxy搭建Web群集
使用Haproxy搭建Web群集
使用Haproxy搭建Web群集

上一篇:Linux Haproxy Web 集群


下一篇:Docker:docker部署mysql5.7.21集群搭建负载均衡实现双机热部署方案