概述:
Haproxy是一种群集调度工具,是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
案例环境:
使用三台服务器模拟搭建一套Web群集,拓扑图如下所示。
使用Haproxy搭建Web群集_第1张图片
案例环境表:
使用Haproxy搭建Web群集_第2张图片

实施步骤:
一、编译安装Nginx服务
1.搭建Nginx1,使用nginx-1.12.0.tar.gz安装包进行编译安装。
[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y
[root@localhost tomcat]# tar zxvf nginx-1.12.0.tar.gz -C /opt/
使用Haproxy搭建Web群集
[root@localhost nginx-1.12.0]# make && make install
①设置测试界面并启动Nginx服务
使用Haproxy搭建Web群集_第3张图片
②在客户端访问http://192.168.100.100/test.html进行测试
使用Haproxy搭建Web群集_第4张图片
2.搭建Nginx2
①编译安装的步骤与Nginx1相同,不同之处在于建立测试界面。
使用Haproxy搭建Web群集
②安装完成后,在客户端访问http://192.168.100.120/test.html进行测试
使用Haproxy搭建Web群集_第5张图片
二、编译安装Haproxy
1.使用haproxy-1.5.19.tar.gz安装包进行编译安装
[root@localhost ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y
[root@localhost tomcat]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/
[root@localhost haproxy-1.5.19]# make TARGET=linux26 编译安装
[root@localhost haproxy-1.5.19]# make install
三、Haproxy服务器配置
1.建立Haproxy的配置文件
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy 创建配置文件目录
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ 将haproxy.cfg复制到配置文件目录
2.删除所有listen项目
[root@localhost haproxy-1.5.19]# cd /etc/haproxy/
[root@localhost haproxy]# vim haproxy.cfg
添加
使用Haproxy搭建Web群集
删除以下语句
使用Haproxy搭建Web群集_第6张图片
3.创建自启动脚本
使用Haproxy搭建Web群集_第7张图片
四、测试Web群集
1.测试高性能
①在客户端使用浏览器打开http://192.168.100.100/test.html进行测试
②再次打开一个新的浏览器页面访问http://192.168.100.120/test.html进行测试
使用Haproxy搭建Web群集_第8张图片

五、Haproxy的日志分割
1.修改Haproxy配置文件中关于日志配置的选项,加入下面的配置:
使用Haproxy搭建Web群集_第9张图片
将这两行配置放到Haproxy的global全局配置项目中,主要是将Haproxy的info及notice日志分别记录到不同的日志文件中。
然后重启Haproxy,完成Haproxy配置
使用Haproxy搭建Web群集
2.修改rsyslog配置
为了便于管理,将Haproxy相关配置独立定义到haproxy.conf,并放到/etc/rsyslog.d下,rsyslog启动是=时会自动加载此目录下的所有配置文件。
使用Haproxy搭建Web群集
加入下面的内容:
使用Haproxy搭建Web群集
这部分配置是将Haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下,其中“&~”表示当日志写入到日志文件后,rsyslog停止处理这个信息。
然后保存配置文件重启rsyslog服务,完成配置。
[root@localhost ~]# systemctl restart rsyslog.service
3.测试日志信息
在客户端访问http://192.168.100.100/test.html后,使用/var/log/haproxy/haproxy-info.log即时查看Haproxy的访问请求日志信息。
使用Haproxy搭建Web群集_第10张图片