使用Haproxy搭建Web群集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Haproxy搭建Web群集相关的知识,希望对你有一定的参考价值。

技术分享图片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):基于来源访问调度  

实验拓扑图

技术分享图片

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

实验过程

一、在Haproxy服务器上操作

1.编译安装Haproxy

技术分享图片

2.建立Haproxy的配置文件

技术分享图片

3.Haproxy配置项介绍

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

技术分享图片

技术分享图片

技术分享图片

4.创建自启动脚本

技术分享图片


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

技术分享图片

6.客户端进行验证

技术分享图片

技术分享图片

7.Haproxy的日志

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

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

技术分享图片

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

(2)修改rsyslog配置

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

技术分享图片

加入下面的内容

技术分享图片

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

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

(3)测试日志文件

技术分享图片

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

技术分享图片

技术分享图片

2.修改keepalived配置文件

vim  /etc/keepalived/keepalived.conf

技术分享图片

技术分享图片

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

技术分享图片

技术分享图片

配置完成后,重启服务

技术分享图片

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

技术分享图片

二、从服务器配置

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

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

  3. 修改keepalived配置文件

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

技术分享图片

技术分享图片

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

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

技术分享图片

技术分享图片

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

以上是关于使用Haproxy搭建Web群集的主要内容,如果未能解决你的问题,请参考以下文章

使用haproxy搭建web群集

群集05-使用Haproxy搭建Web群集

使用HAProxy搭建Web群集

使用Haproxy搭建Web群集

中级篇使用Haproxy搭建WEB群集

使用 HAProxy + Nginx 搭建 Web 群集