haproxy搭建web群集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy搭建web群集相关的知识,希望对你有一定的参考价值。
haproxy案例概述
------------前言:楼主在之前搭建过几种群集,例如tomcat+nginx负载均衡群集,lvs负载均衡群集,haproxy搭建群集与三种群集相比较来说,lvs性能最好,但是搭建复杂,我们刚刚做过这个实验,也深有体会,nginx的upstream模块支持群集,但是对群集的节点的故障检查功能不多,性能也没有haproxy好,所以应该说harpoxy也是非常不错的,在有些公司也使用这个软件搭建群集,
Haproxy是目前比较流行的一种集群调度工具
Haproxy 与LVS、Nginx的比较
LVS性能最好,但是搭建相对复杂
Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,性能没有Haproxy好
本案例介绍使用Haproxy及Nginx搭建一套Web集群
案例分析:前置知识点
HTTP请求
请求方式:GET方式,POST方式
返回状态码:正常的状态码为2××、3××,异常的状态码为4××、5××
负载均衡常用调度算法
RR(Round Robin):轮询调度
LC(Least Connections):最小连接数
SH(Source Hashing):基于来源访问调度
案例分析:案例环境
综合实验:搭建hproxy群集**
1、实验拓扑
2、虚拟机的实验环境
一台haproxy服务器,二台nginx服务器,搭建两个不同的网站(方便测试群集),一台客户机上网测试。
3、实验步骤
1)编译安装haproxy
首先安装两个支持包
2)haproxy服务器的配置
首先建立haproxy的配置文件
拷贝配置文件的样本复制到/etc/haproxy目录下
修改haproxy.cfg配置文件
3)创建自启动脚本
--失误,后面是/etc/init.d//haproxy
--失误,后面是/usr/bin/haproxy
--失误,后面是/etc/init.d/haproxy
4)安装nginx并制作网页
启动nginx服务
剩下的节点配置一样,为了测试时看出效果,建议将测试页的内容不要保持一致
5)开启haproxy服务
注意在防火墙上开启例外,或者关闭防火墙
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
6)测试web群集
首先测试负载均衡
在客户端上打开http://192.168.1.10,浏览器显示第一台网页
再次打开一个新的浏览器访问,显示第二台网页
下面再测试一下高可用,我们把第一台服务器的网卡断掉,模拟服务器出现故障,如果网页依然可以访问,说明群集的高可用没有问题。
7)配置haproxy日志
Haproxy的日志默认是保存到系统的syslog中,查看起来不方便,所以我们在生产环境中可以将日志单独存储到不同的文件中,配置如下
首先修改配置文件,主要改下面的部分
这两行的作用是将info和notice的日志分别记录到不同的文件中
然后修改rsyslog配置,将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d下,rsyslog启动时会自动加载此目录下所有的配置文件。
加入以下内容
以下内容是将info和notice日志放到不同的文件中
然后重新启动rsyslog服务
测试日志信息
在客户机访问网站之后,可以使用tail -f /var/log/haproxy/haproxy-info.log即时查看日志
4、为了实现haproxy的高可用,我们可以配置keepalived,配置方法参考上博客,上一个博客是在lvs上配置,但不同的是我们今天在haproxy上来配置。
虚拟机上的环境如下图所示
上图中增加了一台haproxy,用来做备份,在上面安装keepalived,和上一章配置keepalived步骤相同,大家自己练习一下,配置好了之后断掉第一台haproxy,网站依然可以访问对了。
注意防火墙开启224.0.0.18端口,这是keepalived的组播地址。
iptables -I INPUT -p ip -d 224.0.0.18 -j ACCEPT
----------------如有不懂请留下评论
以上是关于haproxy搭建web群集的主要内容,如果未能解决你的问题,请参考以下文章