使用Haproxy搭建Web群集
2021-05-12 03:30
标签:正则 defaults 区别 一个 常见 发送 emctl 分配 文件 HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 Nginx特点 Haproxy特点 HAProxy实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发链接。事件驱动模型因为在有更好的资源和时间管理的用户端(user-space)实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以及使每个CPU时间片(Cycle)做更多的工作。 RR(Round Robin):算法是最简单最常见的一种算法,即轮询调度。 LC(Least Connections):算法即最小连接算法,根据后端的节点连接数大小动态分配前段请求。 SH(Source Hashing):SH基于来源访问调度算法,此算法用于一些有Session会话记录在服务器端的场景,可以基于来源IP,Cookie等做群集调度 默认安装目录: /usr/local/nginx 在客户端访问http://192.168.1.61/test. html测试, (2)搭建Nginx2. [ root@localhost html]# echo "Server 192.168.1.62" > test. html 在ke客户端访问http://192.168.162/test . html测试 (2) Haproxy配置项介绍。 Haproxy配置文件通常分为三个部分,即global. defaults 和listen。global 为全局配置,defaults 为默认配置,listen 为应用组件配置。 global配置项通常有下面配置参数 defaults配置项配置默认参数. listen配置项一般配置应用模块参数。 (3) 根据目前的群集设计,将haproxy, cfg配置文件的内容修改如下。 通过上面的步骤,已经搭建完成Haproxy的Web群集,接下来需要验证群集是否工作正常。一 1)测试高性能 再次打开一个新的浏览器页面访问http://192.168.1. 60/test.html.浏览器显示信息如图所示 使用Haproxy搭建Web群集 标签:正则 defaults 区别 一个 常见 发送 emctl 分配 文件 原文地址:https://blog.51cto.com/14400213/2457195
Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。其配置简单,维护方便,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后,Haproxy还会自动将该RS服务器加入进来提供服务。
Haproxy特别适用于那些高负载、访问量很大。但又需要会话保持或七层应用代理的业务。Haproxy运行在普通的服务器硬件上,几乎不需要进行更多的优化就可以支 持数以万计的并发连接。并且它的运行模式使得它可以很简单、安全的整合到各种网站的架构中,同时,haproxy的代理模式,可以使得应用服务器不会暴露到网络中。
1.支持Http协议,工作在网络7层
2.支持通过端口健康检测
3.支持强大的正则匹配规则
4.支持WebSocket协议
5.支持Http Cache
1.支持TCP与Http协议,工作在网络4层和7层
2.支持Session共享、Cookies引导
3.支持通过URL健康检测
4.支持8种负载均衡策略
5.支持心跳检测
二.案例
[root@localhost ~]# yum -y install pcre-devel zlib-devel
[root@localhost ~]# useradd -M -s / sbin/nologin nginx
[root@localhost ~]# tar xf nginx-1 .12.0. tar.gz
[root@localhost ~]# cd nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure --prefix=/usx/1oca1/nginx --user=nginx --group=nginx
[root@localhost nginx-1.12.0]# make && make install
默认日志: /usr/local/nginx/logs/
默认监听: 80。
默认Web目录: /usr/local/nginx/html
编译安装的步骤与Nginx1相同,不同之处在于建立测试页面。
[root@localhost ~]# yum -y install pcre-devel bzip2-deve1
[root@localhost ~]# tar xf haproxy-1.5.19. tar.gz
[root@localhost haproxy-1.5.19]# make TARGET=linux26 //64位系统
[root@localhost haproxy-1.5.19]# make install
(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文件复制到配置文件目录
global
log 127.0.0.1 local0 //配置日志记录, local0为日志设备,默认存放到系统日志
log 127.0.0.1 locall notice //notice 为日志级别,通常有24个级别
maxconn 4096 //最大连接数
uid 99 //用户uid
gid 99 //用户gid
defaults
log global //定义日志为global配置中的日志定义
mode http //模式为http
option httplog //采用http日志格式记录日志
retries 3 //当服务器负载很高时,自动结束当前队列处理比较久的连接
maxconn 2000 //最大连接数
cont imeout 5000 //客户端超时时间
cont imeout 50000 //服务器超时时间
listen appli4-backup 0.0.0.0:10004 //定义一个appli4-backup的应用
option httpchk / index . html //检查服务器的index.html文件
option persist / /强制将请求发送到已经down掉的服务器
balance roundrobin //负载均衡调度算法使用轮询算法
server inst1 192.168.114.56:80 check inter 2000 fall 3 //定义在线节点
server inst2 192.168.114.56:81 check inter 2000 fall 3 backup //定义备份节点
global
log 127 .0.0.1 loca10
1og 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
uid 99
gid 99
da emon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webcluster 0.0.0.0:80 .
option httpchk GET / index . html
balance
roundrobin .
serve r
instl 192.168.1.61 :80 check inter 2000 fall 3
serve r
inst2 192.168.1.62:80 check inter 2000 fall 3
[root@localhost haproxy]# cp ~/haproxy-1.5. 19/examp1es/haproxy . init /etc/init
d/haproxy
[root@localhost haproxy]# ln -s /usx/1ocal/ sbin/haproxy /usr/ sbin/haproxy
[root@localhost haproxy]# chmod +x /etc/init. d/haproxy
[root@localhost haproxy]# chkconfig --add /etc/init. d/haproxy
[root@localhost haproxy]# /etc/init. d/haproxy start
Starting haproxy (via systemctl) :
[确定]
[root@localhost haproxy]# systemctl stop firewalld
个群集一般需要具备两个特性,第- -个是高性能,第二个是高可用。
在客户端使用浏览器打开http://192.168.1 60/test .html,浏览器显示信息如图所示。