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

实施步骤: 一、编译安装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/ [root@localhost nginx-1.12.0]# make && make install ①设置测试界面并启动Nginx服务 ②在客户端访问http://192.168.100.100/test.html进行测试 2.搭建Nginx2 ①编译安装的步骤与Nginx1相同,不同之处在于建立测试界面。 ②安装完成后,在客户端访问http://192.168.100.120/test.html进行测试 二、编译安装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 添加 删除以下语句 3.创建自启动脚本 四、测试Web群集 1.测试高性能 ①在客户端使用浏览器打开http://192.168.100.100/test.html进行测试 ②再次打开一个新的浏览器页面访问http://192.168.100.120/test.html进行测试

五、Haproxy的日志分割 1.修改Haproxy配置文件中关于日志配置的选项,加入下面的配置: 将这两行配置放到Haproxy的global全局配置项目中,主要是将Haproxy的info及notice日志分别记录到不同的日志文件中。 然后重启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服务,完成配置。 [root@localhost ~]# systemctl restart rsyslog.service 3.测试日志信息 在客户端访问http://192.168.100.100/test.html后,使用/var/log/haproxy/haproxy-info.log即时查看Haproxy的访问请求日志信息。