haproxy

 

目录

 

1、haproxy概述

2、常见的web集群调度器

2.1、软件:

2.2、硬件:

3、haproxy应用分析

4、HAProxy的主要特性有:

5、HAProxy负载均衡策略

6、 LVS、Nginx、HAproxy的区别


 

1、haproxy概述

HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。

HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理。

HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上。

2、常见的web集群调度器

目前常见的Web集群调度器分为软件和硬件

2.1、软件:

通常使用开源的LVS、Haproxy、Nginx

LVS性能最好(基于内核转发),但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有 Haproxy好。

LVS >haproxy>nginx

2.2、硬件:

一般使用比较多的是F5(最多)、Array,也有很多人使用国内的一些产品,如梭子鱼、绿盟等,不在乎成本的公司会选择用硬件,更多的是采用软件

3、haproxy应用分析

LVS:

在企业应用中抗负载能力很强,但存在不足,LVS不支持正则表达式,不能实现动静分离,对于大型网站,LVS的实施配置复杂,维护成本相对较高,一般在上百台群集中使用

Haproxy:

是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件,适用于负载大的Web站点,运行在硬件上可支持数以万计的并发连接的连接请求

4、HAProxy的主要特性有:

●可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美;

●最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;

●支持多达8种负载均衡算法,同时也支持会话保持;

●支持虚机主机功能,从而实现web负载均衡更加灵活;

●支持连接拒绝、全透明代理等独特的功能;

●拥有强大的ACL支持,用于访问控制;

●其独特的弹性二叉树数据结构,使数据结构的复杂性上升到了0(1),即数据的查寻速度不会随着数据条目的增加而速度有所下降;

●支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成;

●支持TCP加速,零复制功能,类似于mmap机制;

●支持响应池(response buffering); ●支持RDP协议;

●基于源的粘性,类似nginx的ip_hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器;

●更好统计数据接口,其web接口显示后端集群中各个服务器的接收、发送、拒绝、错误等数据的统计信息;

●详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态,并提供了一定的管理功能;

●基于流量的健康评估机制; 同时基于http认证; 基于命令行的管理接口;

●日志分析器,可对日志进行分析。

5、HAProxy负载均衡策略

常见的有如下8种:

  1. roundrobin,表示简单的轮询
  2. static-rr,表示根据权重
  3. leastconn,表示最少连接者先处理
  4. source,表示根据请求源IP
  5. uri,表示根据请求的URI,做cdn需使用;
  6. url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name
  7. hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
  8. rdp-cookie(name),表示根据cookie(name)来锁定并哈希每一次TCP请求。

 

6、 LVS、Nginx、HAproxy的区别

  1. LVS基于Linux操作系统内核实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;
  2. LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
  3. LVS因为工作在ISO模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态检测方式;
  4. HAProxy功能强大,但整体性能低于4层模式的LVS负载均衡。

nginx

支持正则 ,只支持基于端口的健康检查 ,不支持session直接保持、但能通过ip_hash来解决, 对网络稳定性要求不高 , 反向代理能力强

LVS

只能基于四层端口转发 ,尽在四层做分发作用 抗负载能力强 ,应用范围广

haproxy

支持8中负载均衡策略 ,仅作负载均衡软件使用,在高并发情况下性能优于nginx ,支持URL检测 支持session保持

7、实验

关闭防火墙

systemctl stop firewalld

setenforce 0

 解压haproxy-1.5.19.tar.gz

依赖环境:yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

 TARGET=linux2628 是设置目标操作系统为Linux 2.6.28版本。ARCH=x86_64 是设置要编译的架构为x86_64。

并安装到系统中

 将文件复制到新建的目录中

 编辑文件

 

 添加系统服务

 测试

 默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。

 添加日志配置文件

 需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。

说明:
这部分配置是将haproxy的info日志记录到var/log/haproxy/haproxy-info.log下,将notice日志记录到var/log/haproxy/haproxy-notice.log下。“&~”表示当日志写入到日志文件后,rsyslog停止处理这个信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/76099.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尚硅谷css3笔记

目录 一、新增长度单位 二、新增盒子属性 1.border-box 怪异盒模型 2.resize 调整盒子大小 3.box-shadow 盒子阴影 案例:鼠标悬浮盒子上时,盒子有一个过度的阴影效果 三、新增背景属性 1.background-origin 设置背景图的原点 2.background-clip 设置背…

【PCIE体系结构十七】PCIE电源管理之PCI-PM

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 设…

Java自学到什么程度就可以去找工作了?

引言 Java作为一门广泛应用于软件开发领域的编程语言,对于初学者来说,了解到什么程度才能开始寻找实习和入职机会是一个常见的问题。 本文将从实习和入职这两个方面,分点详细介绍Java学习到什么程度才能够开始进入职场。并在文章末尾给大家安…

ue5读取外部文件

准备环境 我的环境是win10,ue5.1.1,cpux86。 创建工程时,需要选择C模式 这样在Content Browser中会出现C Classes文件夹,下面有一个本项目命名的文件夹,鼠标右键可以看到New C Class选项。 新建类的时候选择父类Blue…

爬虫的代理IP池写哪里了?

亲爱的程序员小伙伴们,想要提高爬虫效率和稳定性,组建一个强大的代理IP池是非常重要的一步!今天我就来和你分享一下,代理IP池到底应该写在哪里,以及如何打造一个令人瞩目的代理IP池!准备好了吗?…

幼儿园托幼机构管理系统 微信小程序

托幼机构管理系统微信小程序从功能、数据流程、可行性、运行环境进行需求分析。对托幼机构管理系统微信小程序的数据库、功能进行了详细设计,分析了主要界面设计和相关组件设计,托幼机构管理系统微信小程序的具体实现进行了介绍。从数据库中获取数据、向…

30.Netty源码服务端启动主要流程

highlight: arduino-light 服务端启动主要流程 •创建 selector •创建 server socket channel •初始化 server socket channel •给 server socket channel 从 boss group 中选择一个 NioEventLoop •将 server socket channel 注册到选择的 NioEventLoop 的 selector •…

SRM系统询价竞价管理:优化采购流程的全面解析

SRM系统的询价竞价管理模块是现代企业采购管理中的重要工具。通过该模块,企业可以实现供应商的询价、竞价和合同管理等关键环节的自动化和优化。 一、概述 SRM系统是一种用于管理和优化供应商关系的软件系统。它通过集成各个环节,包括供应商信息管理、询…

三、Kafka生产者

目录 3.1 生产者消息发送流程3.1.1 发送原理 3.2 异步发送 API3.3 同步发送数据3.4 生产者分区3.4.1 kafka分区的好处3.4.2 生产者发送消息的分区策略3.4.3 自定义分区器 3.5 生产者如何提高吞吐量3.6 数据可靠性 3.1 生产者消息发送流程 3.1.1 发送原理 3.2 异步发送 API 3…

攻防世界-simple_php

原题 解题思路 flag被分成了两个部分:flag2,flag2。获得flag1需要满足变量a0且变量a≠0,这看起来不能实现,但实际上当变量a的值是字符时,与数字比较会发生强制类型转换,所以a为字符型数据即可,变…

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥,作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示:这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式,它结合了ECC抵御标准攻击的安全性和…

html(七)meta标签

一 meta标签 1、背景:发现自带某些请求头2、本文没有实际的生产应用场景,仅仅作为技术积累 ① meta标签含义 1、metadata: 元数据,是用于描述数据的数据,它不会显示在页面上,但是机器却可以识别2、应用场景: [1]、SEO搜索引擎优化[2]、定义页面使用…