您的位置:首页 > 其它

为两台web服务器提供haproxy负载均衡

2020-07-23 17:03 211 查看

1、概述
是一款高性能的负载均衡软件;
因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。
2、特点
•支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富;
•支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
•性能非常优秀,基于事件驱动的链接处理模式及单进程处理模式(和Nginx类似)让其性能卓越。
•拥有一个功能出色的监控页面,实时了解系统的当前状况。
•功能强大的ACL支持,给用户极大的方便。
3、部署
3.1 拓扑

3.2 环境
Client 192.168.171.128
HAproxy 192.168.171.11
web1 192.168.171.12
web2 192.168.171.13

3.3 为web1和web2创建前端服务(两台时钟同步)
yum install httpd

3.4 部署haproxy(可以在官网下载,进行编译安装,我这里使用yum安装)
#yum install epel-release -y
#yum install haproxy -y

3.5 配置HAproxy
#vim /etc/haproxy/haproxy.cfg
global #全局配置
log 127.0.0.1 local3 info #日志配置
maxconn 4096 #最大连接限制(优先级低)
uid nobody #用户
gid nobody #组用户
daemon #守护进程运行
nbproc 1 #haproxy进程数
defaults #针对(listen和backend块进行设置没如果块中没设置,则使用默认设置)默认配置
log global #日志使用全局配置
mode http #模式7层LB
maxconn 2048 #大连接数(优先级中)
retries 3 #健康检查。3次连接失败就认为服务不可用
option redispatch #服务不可用后的操作,重定向到其他服务器
stats uri /haproxy #web页面状态模块功能开启
stats auth gaogao:123 状态模块认证(用户名gaoyong密码123)
contimeout 5000 #定义haproxy将客户端请求转发至后端服务器,所等待的超时时长
clitimeout 50000 #haproxy作为客户,和后端服务器之间空闲连接的超时时间,到时候发送fin指令
srvtimeout 50000 #haproxy作为服务器,和用户之间空闲连接的超时时间,到时候发送fin指令

frontend http-in #前端配置块。面对用户侧
bind 0.0.0.0:80 #面对用户监听地址和端口
mode http #http模式的LB
log global #日志使用全局配置
option httplog #默认日志格式非常简陋,仅包括源地址、目标地址和实例名称,而“option httplog参数将会使得日志格式变得丰富许多,其通常包括但不限于HTTP请求、连接计时器、会话状态、连接数、捕获的首部及cookie、“frontend”、“backend”及服务器名称,当然也包括源地址和端口号等。
option httpclose #每次请求完毕后,关闭http通道
acl html url_reg -i .html$ #访问控制列表名称html。规则要求访问以html结尾的url时
use_backend html-server if html #如果满足acl html规则,则推送给后端服务器 html-server
default_backend html-server #默认的后端服务器是 html-server

backend html-server #后端服务器名称为 html-server
mode http #模式为7层代理
balance roundrobin #算法为轮询
option httpchk GET /index.html #允许用http协议检查server 的健康
cookie SERVERID insert indirect nocache #轮询的同时,根据插入的cookie SERVERID 的值来做会话保持,将相同的用户请求,转发给相同的真实服务器
server html-A 192.168.171.12:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5 #cookie 3 服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
server html-B 192.168.171.13:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

配置修改完成后,启动haproxy
systemctl start haproxy.service

4、测试
访问
curl 192.168.171.11
暂停web1中的httpd服务,在验证访问是否正常
web1:systemctl stop httpd
curl 192.168.171.11
至此,haproxy已经为两台web服务提供了负载均衡功能

5、查看HAproxy状态,页面能够显示haproxy代理情况等其他信息
浏览器访问 http://192.168.171.11/haproxy

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐