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中可看到条理性笔记。 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。