使用Haproxy搭建Web群集

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

*Haproxy 与LVS、Nginx的比较  web

*LVS性能最好,可是搭建相对复杂  *算法

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

HTTP请求服务器

经过URL访问网站使用的协议是HTTP协议,此类请求通常称为HTTP请求。并发

HTTP请求的方式为GET方式和POST方式。负载均衡

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

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

*负载均衡经常使用调度算法  *性能

RRRound Robin):轮询调度  *

LCLeast Connections):最小链接数  *

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

实验拓扑图

image.png

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

实验过程

1、在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、主服务器的设置

在前边的基础上,按如下步骤作

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

2、从服务器配置

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

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

  3. 修改keepalived配置文件

只需修改router_id、state、priority参数便可,其余保持一致就能够了。

2018-01-30_222232.png

2018-01-30_222432.png

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

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

2018-01-30_205245.png

2018-01-30_205304.png

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

相关文章
相关标签/搜索