Haproxy+Keeplived:
把调度器双机热备,保证我们的调度器的负载均衡和高可用即使坏了一台调度器也能正常使用网页。
介绍:
Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相对而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有haproxy好。
HTTP请求:
通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求。HTTP请求的方式分为GET方式和POST方式。
负载均衡常用的调度算法:
RR(Round Robin):算法是最简单最常见的一种算法,即轮询调度。
LC(Least Connections):算法即最小连接算法,根据后端的节点连接数大小动态分配前段请求。
SH(Source Hashing):SH基于来源访问调度算法,此算法用于一些有Session会话记录在服务器端的场景,可以基于来源IP,Cookie等做群集调度。例如:使用基于IP的群集调度算法,假设这个群集有三个节点分别为A、B、C,当第一个用户第一次访问时这时候调度服务器会将第一个用户分配给A节点;当第二个用户也是第一次访问时这时候调度服务器会将第二个用户的请求分配给节点B;当第一个用户第二次访问时这个时候调度服务器任然把请求分配给第一个,以此类推,基于IP调度相当于是固定某某访问某某。还有就是只要负载调度器不重启,第一个用户的访问请求都会指派给节点A。
此调度算法好处是实现会话保持,但某些IP访问量非常大的话就会引起负载不均衡。
案列实施:
编译安装Nginx服务器,为环境配置好web节点:
安装Nginx服务之前需要先安装两个依赖包,分别为pcre-devel和zlib-devel
创建Nginx服务的运行用户:
上传或从官网下载Nginx的源码软件包并解压:
默认安装目录为:/usr/local/nginx;默认日志目录:/usr/local/nginx/logs
默认监听端口:80;默认Web目录:/usr/local/nginx/html
建立优化链接和分配属主属组:
建立访问测试页面并启动Nginx服务:
设置firewalld防火墙,放行外界访问web站点的流量:
编译安装Haproxy:
安装haproxy服务需要先安装两个依赖包,分别为:pcre-devel和bzip2-devel
编译安装haproxy:
创建haproxy的配置文件:
编译配置文件:
Haproxy配置项介绍:
Haproxy配置文件通常分为三个部分组成,global、defaults和listen
global为全局配置:
defaults为默认配置:
listen为应用组件配置:
根据目前的群集设计,将haproxy.cfg配置文件的内容修改为以下内容:
Defaults配置项保持默认就行
Listen配置项需要添加GET参数和修改server inst:
创建自启脚本:
测试Web群集:
扩展haproxy+keepalived高可用群集:
需要在开启一台服务器,名为slave;并且haproxy的配置与主master上面的一样。
注意:haproxy服务提供的是负载均衡,keepalived提供的是高可用。
安装keepalived服务:
设置keepalived服务开机自启动:
修改配置文件之前,先做一个备份。
(注:以上的配置两台调度器配置均为相同)
改配置文件:
因为keepalived服务提供的是高可用,只需要提供VIP地址就可以了,如果配置了real_server和virtual_server选项那么haproxy服务将毫无意义
只需要留住以上配置文件内容即可。
启动keepalived服务并查看VIP地址:
打开浏览器访问进行验证: