Haproxy搭建web群集--centos7.9
星耀寰宇x 2024-07-30 10:33:01 阅读 64
Haproxy搭建web群集
haproxy简介
是一款轻量级的群集调度工具,可以工作在四层或七层。
支持的调度算法(balance)
roundrobin(rr轮询)
least connections(lc 最少连接)
source hashing (SH 来源哈希算法)
根据源IP地址将来自同一IP的请求尽量转发到同一服务器
案例部署
拓扑
一台服务器作为haproxy服务器
两台web服务器做代理测试
web服务器
关闭防火墙与内核安全机制,然后搭建两台web服务器,写好测试内容即可。
haproxy服务器
本案例准备了haproxy1.5.19版本的源码包
安装前奏
关闭防火墙与内核安全机制
安装编译时所需要的环境
pcre-devel bzip2-devel gcc*
安装过程
先解压
tar zxvf haproxy-1.5.19.tar.gz
进入到安装目录
因为haproxy已经配置过了所以直接编译安装
但是仍需要指定系统内核
make TARGET=linux26
linux26:代表了内核在2.6版本往上的Linux,包括2.6
make install
安装后处理
建立配置文件
mkdir /etc/haproxy
拷贝源码包例子目录中的配置文件到该目录下,注意文件名称
cp examples/haproxy.cfg /etc/haproxy/
创建服务控制脚本
拷贝源码包例子目录下的服务控制文件到/etc/init.d/并重命名
cp examples/haproxy.init /etc/init.d/haproxy
因为该服务脚本需要寻找对应的命令才能进行控制,默认寻找的位置是/usr/sbin。在安装完成后会在/usr/local/sbin下生成命令,所以要做一个软链接。
cp examples/haproxy.init /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
赋予执行权并添加到系统服务和开机自启
chmod +x /etc/init.d/haproxy
chkconfig --add haproxy
chkconfig haproxy on
修改配置文件
配置文件详解(只介绍本案例需要的)
全局配置区域
标识1:定义日志的配置信息
标识2:最大连接数
标识3:“chroot监狱”,该服务的数据会被禁锢在该目录。
标识4:haproxy运行的用户
标识5:haproxy运行的用户组
标识6:daemon以守护进程的方式运行,推荐
标识7:调试模式,输出启动信息到标准输出
标识8:安静模式,启动时无输出
默认配置区域(当全局配置与默认配置发生冲突后以默认配置为准)
标识1:日志格式,采用全局的日志格式
标识2:模块为http,表示是七层代理
标识3:选项模块,采用http的日志格式
标识4:对上层负载均衡发送的检测状态心跳包不做记录。
标识5:重试次数,检查节点连接失败后的重试次数
标识6:当负载很高时,自动结束当前队列处理比较久的连接。影响到会话保持配置。
标识7:最大连接数
标识8,9,10:因为haproxy作为代理要负责客户端,服务端的连接,请求与请求之间的连接时间。
监听项配置
标识1:定义集群名称和监听的地址与端口
标识2:健康状态检查的方法,通过HTTP-GET的方法去下载指定文件来确定是否存货。
标识3:调度算法 (roundrobin) 标识4:真实服务器的定义的名称,IP地址与端口,心跳频率(检查间隔)fall(重试次数)。
haproxy支持的调度算法
haproxy共有八种调度算法
1)balance leastconn 最少连接数
2)balance roundrobin 轮询
3)balance source 根据客户端IP进行哈希的方式
4)static-rr 根据权重
5)uri 根据请求的URI
6)url_param 根据请求的URl参数
7)hdr(name) 根据HTTP请求头来锁定每一次HTTP请求
rdp-cookie(name) 根据cookie(name)来锁定并哈希每一次TCP请求
该项根据本案例需要自行按照模板修改
到此haproxy的代理设置就已经完毕。
haproxy的自定义日志
编辑配置文件在全局配置项中log部分做修改
log 127.0.0.1 local3
代表日志输出到本机通过local3设备
在/etc/rsyslog.conf中体现
可在 /etc/rsyslog.d下修改,也可以在配置文件中直接添加。
$ModLoad imudp
采集日志协议用udp
$UDPServerRun 514
采集日志的指定端口号514
local3.* /var/log/haproxy.log
日志存放位置
最后重启rsyslog服务与haproxy服务,在客户端进行访问看生成了对应的文件没有。
将以上内容复制到xmind中可看到条理性笔记。
上一篇: InstantStyle:SDWeb Controlnet插件升级支持,增强版IPAdapter风格一致性免调优框架(附相关插件)
下一篇: 【前端素材】推荐优质 扁平化宠物医院商店网站Pet Shop模板(附源码)
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。