当前位置: 首页 > news >正文

Haproxy部署Web群集

概论

       HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理。HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上。

HAProxy的特性

  • 可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美;
  • 最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;
  • 支持多达8种负载均衡算法
  • 支持Session会话保持,Cookie的引导;
  • 支持通过获取指定的url来检测后端服务器的状态;
  • 支持虚机主机功能,从而实现web负载均衡更加灵活;
  • 支持连接拒绝、全透明代理等独特的功能;
  • 拥有强大的ACL支持,用于访问控制;
  • 支持TCP和HTTP协议的负载均衡转发;
  • 支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成

HAProxy的负载均衡策略

roundrobin轮询
static-rr权重
leastconn最少连接
source根据源地址做哈希
uri根据请求的URI地址做哈希
rri_param根据请求的URL路径里传递的参数做哈希
har(name)根据请求头的字段做哈希
rdp-cookie(name)根据cookie里的字段做哈希

HAProxy3种会话保持方式

(1)源地址hash

balance source

(2)设置cookie

cookie HA_STICKY_dy insert indirect nocache
server tomcat.inst1 192.168.80.11:8080 cookie tomcat.inst1

(3)会话粘性表stick-table

stick-table type ip size 5k expire 1m
stick on src

Nginx、LVS和HAProxy

Nginx

优点

  • 工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构。Nginx正则规则比HAProxy更为强大和灵活。
  • Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,LVS对网络稳定性依赖比较大,稳定要求相对更高。
  • Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS的配置、测试就要花比较长的时间了。
  • 可以承担高负载压力且稳定,一般能支撑几万次的并发量,负载度比LVS相对小些。
  • Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等。
  • Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。
  • Nginx作为Web正向加速缓存越来越成熟了,速度比传统的Squid服务器更快,很多场景下都将其作为向代理加速器。
  • Nginx作为静态网页和图片服务器,这方面的性能非常优秀,同时第三方模块也很多。

缺点

  • Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些。
  • 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。
  • 不支持Session的直接保持,需要通过ip_hash和cookie的引导来解决。

LVS

优点

  • 抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生。因此负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。
  • LVS工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案。
  • 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。
  • 应用范围较广,因为LVS工作在4层,所以它几乎可对所有应用做负载均衡,包括http、数据库等。

缺点

  • 软件本身不支持正则表达式处理,不能做动静分离。相对来说,Nginx/HAProxy+Keepalived则具有明显的优势。
  • 如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了。相对来说,Nginx/HAProxy+Keepalived就简单多了。

HAProxy

优点

  • HAProxy也是支持虚拟主机的。
  • HAProxy支持8种负载均衡策略。
  • HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导,同时支持通过获取指定的url来检测后端服务器的状态。
  • HAProxy跟LVS类似,本身就只是一款负载均衡软件,单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
  • HAProxy支持TCP协议的负载均衡转发。

总结

LVS、Nginx、HAProxy的区别可以从负载均衡转发的性能、支持的代理类型、配置维护以及健康检查来展开

负载均衡转发性能

  • LVS的转发性能是最好的,HAProxy要次于LVS,Nginx比前两款要弱。

支持的代理类型

  • LVS是基于Linux内核实现的软负载均衡,只支持四层代理转发,不支持正则表达式处理,不能做动静分离
  • Nginx、HAProxy都是基于应用层实现的软负载均衡,都支持四层和七层代理转发,支持正则表达式处理,能做动静分离

配置维护

  • LVS 的配置比较复杂,实施的难度稍高些,维护的成本相比较而言也更高
  • Nginx、HAProxy 配置较为简单,维护成本低

健康检查

  • LVS可以配合Keepalived实现高可用,以及实现TCP端口或HTTP URL方式的健康检查
  • Nginx默认只支持被动方式的TCP端口健康检查,主动健康检查需要安装第三方模块nginx_upstream_check_module后才能支持
  • HAProxy默认就支持主动的TCP端口、HTTP URL、脚本等方式的健康检查

相关文章:

Haproxy部署Web群集

概论 HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理。HAProxy的运行模式使得它可以…...

C++STL梳理

CSTL标准手册: https://cplusplus.com/reference/stl/ https://cplusplus.com/reference/vector/vector/at/ 1、STL基础 1.1、STL基本组成(6大组件13个头文件) 通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成&…...

找出1000以内的所有的完数

完数的概念&#xff1a;完数&#xff08;Perfect Number&#xff09;是一个正整数&#xff0c;它等于除了它本身以外所有正因子之和。例如&#xff0c;6的因子有1、2、3和6&#xff0c;其中1236&#xff0c;所以6是一个完数。 #include <stdio.h> // 函数用于计算一个数…...

3110. 字符串的分数

给你一个字符串 s 。一个字符串的 分数 定义为相邻字符 ASCII 码差值绝对值的和。 请你返回 s 的 分数 。 示例 1&#xff1a; 输入&#xff1a;s "hello" 输出&#xff1a;13 解释&#xff1a; s 中字符的 ASCII 码分别为&#xff1a;h 104 &#xff0c;e 1…...

Mybatis MySQL allowMultiQueries 一次性执行多条语句

在JDBC 增加参数allowMultiQueries jdbc:mysql://localhost:3306/abc?&allowMultiQueriestrue <insert id"addRi" parameterType"java.util.List">DELETE FROM sys_ri WHERE sr_id #{roId} AND sr_fion_id #{fod};INSERT into sys_rVALUES&…...

Kubernates容器化JVM调优笔记(内存篇)

Kubernates容器化JVM调优笔记&#xff08;内存篇&#xff09; 先说结论背景思路方案 先说结论 1、首先如果是JDK8&#xff0c;需要使用JDK8_191版本以上&#xff0c;才支持容器化环境和以下参数&#xff0c;否则就更新到JDK10以上&#xff0c;选择对应的镜像构建就行了 2、在容…...

Elasticsearch Scroll 报错entity content is too long

2024-06-24 15:22:01:568 ERROR [task-31] (ScrollFetcherProduceAction.java:129) 访问ES出错org.apache.http.ContentTooLongException: entity content is too long [112750110] for the configured buffer limit [104857600]at org.elasticsearch.client.HeapBufferedAsync…...

Vue iview输入框change事件replace正则替换不生效问题的解决。

// 需求&#xff1a;输入座机号只允许输入数字和"-" onChange(e){this.$nextTick(()>{this.phone e.target.value.replace(/[^0-9-]/g, );}) } 解决&#xff1a;添加**this.$nextTick**即可...

Prestashop跨境电商独立站,外贸B2C网站完整教程

Prestashop是一款来自法国专业的开源电商CMS(内容管理系统)平台&#xff0c;和wordpress一样比较轻量&#xff0c;适合中小网站。Prestashop跨境电商独立站在国内并不是很流行&#xff0c;不过国外是非常火的&#xff0c;从各大平台的Prestashop主题数量就可以看得出来。 最有…...

常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法

常用算法及参考算法 &#xff08;1&#xff09;累加 &#xff08;2&#xff09;累乘 &#xff08;3&#xff09;素数 &#xff08;4&#xff09;最大公约数 &#xff08;5&#xff09;最值问题 &#xff08;6&#xff09;迭代法 1. 累加 #include <stdio.h>int main() {…...

java简易计算器(多种方法)

parseDouble() 方法属于 java.lang.Double 类。它接收一个字符串参数&#xff0c;其中包含要转换的数字表示。如果字符串表示一个有效的 double&#xff0c;它将返回一个 double 值。 应用场景 parseDouble() 方法在以下场景中非常有用&#xff1a; 从用户输入中获取数字&a…...

spring的bean定义和扫描规则

1、bean的基本定义 在Spring框架中&#xff0c;Bean是一个核心概念&#xff0c;它是Spring IoC&#xff08;Inverse of Control&#xff0c;控制反转&#xff09;容器管理的一个对象实例。简单来说&#xff0c;Bean就是由Spring容器初始化、配置和管理的对象。这些对象可以是J…...

软件工程体系概念

软件工程 软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法&#xff0c;以提高质量&#xff0c;降 低成本为目的。 一、软件生命周期 二、软件开发模型 1.传统模型 瀑布模型、V模型、W模型、X 模型、H 模型 (1)瀑布模型 瀑布…...

史上最全整合nacos单机模式整合哈哈哈哈哈

Nacos 是阿里巴巴推出的一个新开源项目&#xff0c;它主要是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos提供了一组简单易用的特性集&#xff0c;帮助用户快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 的关键特性包括&#x…...

Python xml.dom.minidom 读取XML元素

哈喽,大家好,我是木头左! 什么是 XML? XML(可扩展标记语言)是一种用于描述数据结构和交换数据的标记语言。它被广泛用于 Web 应用程序中,用于存储和传输数据。XML 具有自描述性,因此可以很容易地理解和处理。 Python 中的 xml.dom.minidom Python 提供了一个内置的库…...

【Python/Pytorch 】-- K-means聚类算法

文章目录 文章目录 00 写在前面01 基于Python版本的K-means代码02 X-means方法03 最小二乘法简单理解04 贝叶斯信息准则 00 写在前面 时间演变聚类算法&#xff1a;将时间演变聚类算法用在去噪上&#xff0c;基本思想是&#xff0c;具有相似信号演化的体素具有相似的模型参数…...

【Eureka】介绍与基本使用

Eureka介绍与基本使用 一个简单的Eureka服务器的设置方法&#xff1a;1 在pom.xml中添加Eureka服务器依赖&#xff1a;2 在application.properties或application.yml中添加Eureka服务器配置&#xff1a;3 创建启动类&#xff0c;使用EnableEurekaServer注解启用Eureka服务器&am…...

SpringBoot+Vue集成富文本编辑器

1.引入 我们常常在各种网页软件中编写文档的时候&#xff0c;常常会有富文本编辑器&#xff0c;就比如csdn写博客的这个页面&#xff0c;包含了富文本编辑器&#xff0c;那么怎么实现呢&#xff1f;下面来详细的介绍&#xff01; 2.安装wangeditor插件 在Vue工程中&#xff0c;…...

React@16.x(34)动画(中)

目录 3&#xff0c;SwitchTransition3.1&#xff0c;原理3.1.2&#xff0c;key3.1.2&#xff0c;mode 3.2&#xff0c;举例3.3&#xff0c;结合 animate.css 4&#xff0c;TransitionGroup4.1&#xff0c;其他属性4.1.2&#xff0c;appear4.1.2&#xff0c;component4.1.3&…...

ONLYOFFICE 8.1:全面升级,PDF编辑与本地化加强版

目录 &#x1f4d8; 前言 &#x1f4df; 一、什么是 ONLYOFFICE 桌面编辑器&#xff1f; &#x1f4df; 二、ONLYOFFICE 8.1版本新增了那些特别的实用模块&#xff1f; 2.1. 轻松编辑器 PDF 文件 2.2. 用幻灯片版式快速修改幻灯片 2.3. 无缝切换文档编辑、审阅和查…...

工业自动化场景信捷 PLC EtherNet/IP 转 TCP/IP 通信方案

EtherNet/IP转TCP/IP网关应用&#xff1a;信捷PLC工业自动化数据采集实战案例一、项目背景本次项目落地于国内某大型3C电子精密组装工厂&#xff0c;聚焦智能手机中框自动化组装产线&#xff0c;属于当前工业自动化领域高增速、高前景的主流场景&#xff0c;也是工业物联网落地…...

Shopee风控算法逆向 - Unidbg补环境实战解析

1. Shopee风控算法逆向分析入门 最近在研究Shopee的风控机制时&#xff0c;我发现他们的Native层加密算法特别有意思。作为一个常年和移动安全打交道的开发者&#xff0c;今天想和大家分享下使用Unidbg模拟执行Shopee风控算法的完整过程。 Shopee作为东南亚头部电商平台&…...

苹果M系列芯片用户必看:三步搞定iOS游戏在Mac上的完美运行方案

苹果M系列芯片用户必看&#xff1a;三步搞定iOS游戏在Mac上的完美运行方案 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为Mac上无法畅玩心爱的iOS游戏而烦恼吗&#xff1f;你是否想过&#xff…...

BYD Battery Emulator:让电动汽车电池成为家庭储能的智能桥梁

BYD Battery Emulator&#xff1a;让电动汽车电池成为家庭储能的智能桥梁 【免费下载链接】BYD-Battery-Emulator-For-Gen24 This software enables EV battery packs to be used for stationary storage in combination with solar inverters. 项目地址: https://gitcode.co…...

GPT-Neo终极指南:从预训练模型到高效文本生成的完整实践

GPT-Neo终极指南&#xff1a;从预训练模型到高效文本生成的完整实践 【免费下载链接】gpt-neo An implementation of model parallel GPT-2 and GPT-3-style models using the mesh-tensorflow library. 项目地址: https://gitcode.com/gh_mirrors/gp/gpt-neo GPT-Neo是…...

Nunchaku-FLUX.1-dev镜像安全加固:非root运行/最小权限/网络策略限制

Nunchaku-FLUX.1-dev镜像安全加固&#xff1a;非root运行/最小权限/网络策略限制 1. 为什么需要安全加固&#xff1f; 当你把Nunchaku-FLUX.1-dev这个强大的文生图模型部署在自己的服务器上时&#xff0c;可能更多关注的是它能生成多么精美的图片&#xff0c;或者处理中文提示…...

FUTURE POLICE赋能在线教育:AI助教自动批改口语作业

FUTURE POLICE赋能在线教育&#xff1a;AI助教自动批改口语作业 每次上完英语口语课&#xff0c;最头疼的是什么&#xff1f;对很多学生来说&#xff0c;是等待老师批改作业的漫长过程&#xff0c;还有那千篇一律的“发音不错&#xff0c;继续努力”的反馈。对老师而言&#x…...

3步解锁全显卡AI超分:让老旧设备焕发新生的开源黑科技

3步解锁全显卡AI超分&#xff1a;让老旧设备焕发新生的开源黑科技 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler AI超分辨率技术正…...

基于Proteus与51单片机的智能交通灯系统仿真设计

1. 智能交通灯系统设计概述 红绿灯控制系统是城市交通管理的基础设施&#xff0c;传统固定时长的红绿灯已经无法满足现代交通需求。使用51单片机和Proteus仿真软件搭建智能交通灯系统&#xff0c;不仅能帮助理解嵌入式系统开发流程&#xff0c;还能为实际硬件开发打下基础。这个…...

Java毕业设计基于springboot+vue的校园心理健康系统

前言 在当今社会&#xff0c;青少年心理健康问题日益受到关注&#xff0c;校园作为学生成长的重要场所&#xff0c;构建完善的心理健康支持体系迫在眉睫。Spring Boot 校园心理健康系统应运而生&#xff0c;旨在为校园心理健康工作提供全方位、智能化的解决方案&#xff0c;助力…...