*Haproxy是目前比较流行的一种集群调度工具  

*Haproxy 与LVS、Nginx的比较  

*LVS性能最好,但是搭建相对复杂  *

Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,性能没有Haproxy好

HTTP请求

通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求。

HTTP请求的方式为GET方式和POST方式。

正常的状态码为2xx、3xx;异常的状态码为4xx、5xx

集群的特性 :高性能、高可用

*负载均衡常用调度算法  *

RRRound Robin):轮询调度  *

LCLeast Connections):最小连接数  *

SHSource Hashing):基于来源访问调度  

实验拓扑图

image.png

一台haproxy服务器,二台nginx服务器(或Apache服务器),搭建两个不同的网站(方便测试群集),一台客户机上网测试。

实验过程

一、在Haproxy服务器上操作

1.编译安装Haproxy

2018-01-30_203137.png

2.建立Haproxy的配置文件

2018-01-30_202509.png

3.Haproxy配置项介绍

Haproxy配置文件通常为三个部分,即global(全局配置)、default(默认配置)和listen(应用组件配置)

2018-01-30_200841.png

2018-01-30_200918.png

2018-01-30_201754.png

4.创建自启动脚本

2018-01-30_202642.png


5.在Nginx(Apache)建立网站测试(两个网站服务器操作一致)

2018-01-30_203246.png

6.客户端进行验证

2018-01-30_202811.png

2018-01-30_202914.png

7.Haproxy的日志

Haproxy的日志默认是输出到系统的syslog中,查看起来不是非常方便,为了更好地管理Haproxy的日志,我们在生产环境中一般单独定义出来。

(1)修改Haproxy配置文件中关于日志配置的选项

2018-01-30_203456.png

配置完成后,重启Haproxy服务。

(2)修改rsyslog配置

为了便于管理,将Haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。

2018-01-30_203647.png

加入下面的内容

2018-01-30_203725.png

这部分配置是将Haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下,其中“& ~"表示当日志写入到日志文件后,rsyslog停止处理这个信息。

然后保存配置文件并重启rsyslog服务,完成rsyslog配置。

(3)测试日志文件

2018-01-30_203944.png

8.Haproxy的参数优化

参数
参数说明
优化建议
maxconn
最大连接数
推荐使用10240
daemon
守护进程模式
建议使用
nbproc
负载均衡的并发进程数
建议与当前服务器CPU核数相等或为其2倍
retries
重试次数
此参数主要用于对集群节点的检查,如果节点多,且并发量大,设置为2此或3次;在服务器节点不多的情况下,可以设置5次或6次
option http-server-close
主动关闭http请求选项
建议使用,避免由于timeout时间设置过长导致http连接堆积
timeout http-keep-alive
长连接超时时间
可以设置为10s
timeout http-request
http请求超时时间
建议将此时间设置为5~10s,增加http连接释放速度
timeout client
客户端超时时间
建议设置为1min左右就可以了

扩展

上图中增加了一台haproxy,用来做备份,在两台haproxy上面安装keepalived,两台Haproxy操作步骤一致,只是配置文件有些区别

一、主服务器的设置

在前边的基础上,按以下步骤做

1.安装keepalived

2018-01-30_205042.png

2018-01-30_205057.png

2.修改keepalived配置文件

vim  /etc/keepalived/keepalived.conf

2018-01-30_204155.png

2018-01-30_204247.png

上边这些内容在配置文件必须添加或修改,下边这些内容可以根据自身情况而定

2018-01-30_220235.png

2018-01-30_221005.png

配置完成后,重启服务

2018-01-30_204428.png

注意:防火墙开启224.0.0.18端口,这是keepalived的组播地址。

2018-01-30_221838.png

二、从服务器配置

  1. 安装haproxy服务,及修改配置文件(方法同上)

  2. 安装keepalived服务(方法同上)

  3. 修改keepalived配置文件

只需修改router_id、state、priority参数即可,其他保持一致就可以了。

2018-01-30_222232.png

2018-01-30_222432.png

4.重启keepalived服务,设置防火墙规则

三、客户机进行访问,访问虚拟IP:192.168.1.100

2018-01-30_205245.png

2018-01-30_205304.png

可以关掉主服务器,测试一样可以访问网站,这样就实现了Haproxy高可用的特性。