目录
1 HAProxy介绍
2 功能简介
3 实验组网介绍
4 实验步骤
4.1 通过 HAProxy 实现简单负载均衡调度功能
步骤 1 安装 HAProxy
步骤 2 修改配置 HAProxy 文件
4.2 HAProxy 监控页面配置
步骤 1 修改 HAProxy 配置文件
步骤 2 查看监控页面
3.3 HAProxy 日志相关配置
步骤 1 修改 HAProxy 配置
步骤 2 修改 rsyslog 配置信息
步骤 3 测试
步骤 4 恢复 Nginx2 配置
1 HAProxy介绍
2 功能简介
HAProxy 支持四层和七层的负载均衡HAProxy 基于事件驱动的链接处理模式和单进程处理模式,使其性能更优HAProxy 支持 ACL 功能HAProxy 支持图形化监控HAProxy 支持不少于 10 种的调度算法TCP 和 HTTP 反向代理SSL/TSL 服务器可以针对 HTTP 请求添加 cookie ,进行路由后端服务器可平衡负载至后端服务器,并支持持久连接支持所有主服务器故障切换至备用服务器支持专用端口实现监控服务支持停止接受新连接请求,而不影响现有连接可以在双向添加,修改或删除 HTTP 报文首部响应报文压缩支持基于 pattern 实现连接请求的访问控制通过特定的 URI 为授权用户提供详细的状态信息
不具备的功能:
正向代理--squid,nginx
缓存代理 --varnishweb 服务 --nginx 、 tengine 、 apache 、 php 、 tomcatUDP-- 目前不支持 UDP 协议单机性能 -- 相比 LVS 性能较差
3 实验组网介绍
本实验共使用四台虚拟机,其中一台配置为 HAProxy 服务器,两台用于 Nginx 服务器的搭建,剩余一台模拟客户端。其中 Nginx 服务器可以和上一实验复用,并保留上个实验完成后的状态,每台服务器中运行了三个虚拟机主机。HAProxy 使用两块网卡,分别于连接内网和外网:
4 实验步骤
4.1 通过 HAProxy 实现简单负载均衡调度功能
步骤 1 安装 HAProxy
在 HAProxy 对应虚拟机上使用以下命令安装 HAProxy:
[root@HAProxy ~]# yum install -y haproxy
步骤 2 修改配置 HAProxy 文件
HAProxy 配置文件为/etc/haproxy/haproxy.cfg,在修改前建议先备份。
[root@HAProxy ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk
本实验实现 HAProxy 最基础的负载均衡,因此仅需修改 backend 部分即可,具体如下:
[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfg
4.2 HAProxy 监控页面配置
步骤 1 修改 HAProxy 配置文件
在 HAProxy 配置文件中使用 listen 模块配置监控页面,具体为:
[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfglisten admin_statsstats enablebind *:8080 # 监听的 ip 端口号mode http # 开关option httploglog globalmaxconn 10stats refresh 30s # 统计页面自动刷新时间stats uri /admin # 访问的 uri ip:8080/adminstats realm haproxystats auth admin:admin # 认证用户名和密码stats hide-version # 隐藏 HAProxy 的版本号stats admin if TRUE # 管理界面,如果认证成功了,可通过 webui 管理节点
步骤 2 查看监控页面
配置完成后,重启 HAProxy 服务,然后在 PC 上使用浏览器登录页面 http://IP:8443/haproxy_stats,在弹出的窗口中输入用户密码即可登录监控页面,具体如下:
3.3 HAProxy 日志相关配置
步骤 1 修改 HAProxy 配置
HAProxy 的日志可以在 global 模块中定义,也可以在 default 或 frontend 中定义,本实验采用 global 中的定义的方式实现,在 HAProxy 配置文件中添加关于日志的配置信息,具体如下:
[root@HAProxy ~]# vim /etc/haproxy/haproxy.cfg
步骤 2 修改 rsyslog 配置信息
在/etc/rsyslog.conf 的末尾增加以下配置内容:
步骤 3 测试
配置完成步骤 1 和步骤 2 后,重启 HAProxy 服务和 rsyslog 服务,重启完成后,系统会自动创建指定的日志文件,如下图所示:
在 Nginx2 上开启防火墙
[root@Nginx2 ~]# systemctl start firewalld
查看是否产生对应的日志内容,具体如下图所示:
步骤 4 恢复 Nginx2 配置
关闭 Nginx2 上防火墙服务,使业务恢复。