前言:我们知道tomcat+nginx负载均衡群集lvs负载均衡群集 和 haproxy搭建群集,这三种群集相比较来说,lvs性能最好,但是搭建复杂,nginxupstream模块支持群集,但是对群集的节点的故障检查功能不多,性能也没有haproxy好,所以应该说harpoxy也是非常不错的。所以接下来我们开始使用haproxy搭建群集.

   一, 拓扑图:

使用haproxy搭建web群集

搭建环境:

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

使用haproxy搭建web群集

开始搭建:

首先安装两个支持包

使用haproxy搭建web群集

使用haproxy搭建web群集

使用haproxy搭建web群集

 

2)haproxy服务器的配置

首先建立haproxy的配置文件

使用haproxy搭建web群集


拷贝配置文件的样本复制到/etc/haproxy目录下

使用haproxy搭建web群集

修改haproxy.cfg配置文件

使用haproxy搭建web群集

使用haproxy搭建web群集使用haproxy搭建web群集

3)创建自启动脚本

使用haproxy搭建web群集

使用haproxy搭建web群集

使用haproxy搭建web群集

4,安装ngingx并制作网页。

[email protected] ~]# yum -y install pcre-devel zlib-devel

[[email protected] ~]# tar zxf nginx-1.6.2.tar.gz

[[email protected] ~]# cd nginx-1.6.2

[[email protected] nginx-1.6.2]# ./configure  --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

[[email protected] nginx-1.6.2]# useradd -M -s /sbin/nologin  nginx

[[email protected] nginx-1.6.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

[[email protected] nginx-1.6.2]# echo  "node_1" > /usr/local/nginx/html/index.html

启动nginx服务

[[email protected] nginx-1.6.2]# nginx

建立防火墙规则

[[email protected] nginx-1.6.2]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

剩下的节点配置一样,为了测试时看出效果,建议将测试页的内容不要保持一致

第一台:

使用haproxy搭建web群集

第二台:

使用haproxy搭建web群集

5)开启haproxy服务

使用haproxy搭建web群集

注意:防火网开启例外或者关闭

iptables -I INPUT -p tcp --dport 80 -j ACCEPT


 

6)测试web群集

首先测试负载均衡

在客户端上打开http://192.168.1.10,浏览器显示第一台网页

使用haproxy搭建web群集

再次打开一个新的浏览器访问,显示第二台网页

使用haproxy搭建web群集

下面再测试一下高可用,我们把第一台服务器的网卡断掉,模拟服务器出现故障,如果网页依然可以访问,说明群集的高可用没有问题。

使用haproxy搭建web群集

 

5)配置haproxy日志

Haproxy的日志默认是保存到系统的syslog中,查看起来不方便,所以我们在生产环境中可以将日志单独存储到不同的文件中,配置如下

首先修改配置文件,主要改下面的部分

使用haproxy搭建web群集

这两行的作用是将infonotice的日志分别记录到不同的文件中

 

然后修改rsyslog配置,将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d下,rsyslog启动时会自动加载此目录下所有的配置文件。

使用haproxy搭建web群集

加入以下内容

使用haproxy搭建web群集

以下内容是将infonotice日志放到不同的文件中

 

然后重新启动rsyslog服务

使用haproxy搭建web群集

 

测试日志信息

在客户机访问网站之后,可以使用tail -f /var/log/haproxy/haproxy-info.log即时查看日志

使用haproxy搭建web群集

为了实现haproxy的高可用,我们可以配置keepalived

使用haproxy搭建web群集

上图中增加了一台haproxy,用来做备份,在上面安装keepalived配置好了之后断掉第一台haproxy,网站依然可以访问对了。

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

iptables -I INPUT -p ip -d 224.0.0.18 -j ACCEPT