高效多用的群集-Haproxy搭建Web集群

Haproxy搭建Web群集(群集) 启动该服务;再开启另外的客户机进行测试;104对于haporxy的日志进行设置;添加lcoal3的语句; 阅读详情

Haproxy搭建Web集群

一、Haproxy前言

  • HAProxy是一个使用c语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TcP和HrrP的应用程序代理。
  • HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。EAPrcxp运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
  • HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space)实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个CPU时间片(Cycle)做更多的工作。
  • 包括GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitter和 Tuenti在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。

二、常见的Web集群调度器

  • 目前常见的Web集群调度器分为软件和硬件
    软件通常使用开源的LVS、Haproxy、Nginx
  • LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好
  • 硬件一般使用的比较多的是F5,也有很多人使用梭子鱼、绿盟等国内产品

三、Haproxy应用分析

  • LVS在企业应用中抗负载能力很强,但存在不足
    • LVS不支持正则处理,不能实现动静分离
    • 对于大型网站,LVS的实施配置复杂,维护成功相对较高
  • Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件
    • 适用于负载大的Web站点
    • 运行在硬件上可支持数万计的并发连接的连接请求

四、Haproxy高性能负载均衡主要优点

  • Haproxy在负载均衡速度和并发处理上是优于
  • NginxHaproxy支持虚拟主机,可以工作在4、7层
  • 能够补充Nginx的一些缺点,比如session的保持、cookie的引导等工作
  • 支持url检测后端的服务器的状态
  • Haproxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡
  • 支持很多负载均衡算法,Round-robin(轮询)、weight-round-robin(加权轮询)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)

五、四层与七层负载均衡的主要区别

  • 四层负载均衡器是通过分析IP层及TCP/UDP层的流量实现的基于"IP +端口"的负载均衡,主要通过报文的目标地址和端口配合负载均衡算法选择后端真实服务器,确定是否需要对报文进行修改(根据需求,可能会修改目标地址、源地址、MAc地址等)并将数据转发至选出的后端真实服务器。
  • 七层负载均衡器是基于应用层信息(如URI、Cookies等)的负载均衡。主要依据报文的内容配合负载均衡算法选择后端真实服务器,然后再分发请求到真实服务器进行处理,也称"内容交换器"。客户端与负载均衡器、负载均衡器与后端真实服务器之间会分别建立CP连接。

六、LVS和Haproxy应用分析

  • LVS在企业应用中抗负载均衡能力很强,但存在不足
  • LVS不支持正则处理(因为是应用层),不能实现动静分离对于大型网站,LVS的实施配置复杂,维护成本相对较高
  • Haproxy是一块可提供高可用性、负载均衡及基于rCP和HTTP应用的代理软件特别适合于负载特别大的web站点(可以承受高并发,可与Nginx配合)
  • 运行在当前的硬件上可支持数以万计的并发连接请求

七、Nginx和LVS和Haproxy有什么区别

1、Nginx

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

2、LVS

  • 只能基于四层端口转发
  • 在四层做分发作用,抗负载能力强
  • 应用范围广(几乎可以对所有应用做负载)

3、Haproxy

  • 支持8种负教均衡策略
  • 仅做负载均衡软件使用,在高并发情况下性能优于Nginx
  • 支持URL健康检测、支持session保持

八、Haproxy搭建 Web 群集

实验所需安装包
haproxy-1.5.19.tar.gz
nginx-1.12.0.tar.gz

环境搭建

主机操作系统IP地址所需软件/安装包/工具
HaproxyCentOS7192.168.172.10haproxy-1.5.19.tar.gz
Nginx1CentOS7192.168.172.20nginx-1.12.0.tar.gz
Nginx2CentOS7192.168.172.30nginx-1.12.0.tar.gz
客户端CentOS7192.168.172.40

1、部署haproxy服务器(192.168.172.10)

1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下并编译安装

systemctl stop firewalld
setenforce 0

cd /opt
haproxy-1.5.19.tar.gz
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

tar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

注意:使用uname -r查看内核,如:2.6.18-371.el5,此时该参数用TARGET=linux26;
kernel大于2.6.28的用TARGET=linux2628
ARCH=x86_64;系统位数

Haproxy服务器配置

mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

cd /etc/haproxy/
vim haproxy.cfg
global
  #4~5行–修改,配置日志记录,local0为日志设备,默认存放到系统日志3
  log /dev/log   local0 info		
  log /dev/log   local0 notice
  #log loghost    local0 info
  maxconn 4096   #最大连接数,需考虑ulimit-n限制
  
  #8行–注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉
  #chroot /usr/share/haproxy
  uid 99    #用户UID
  gid 99    #用户GID
  daemon    #守护进程模式

defaults        
  log     global      #定义日志为global配置中的日志定义
  mode    http	      #模式为http
  option  httplog     #采用http日志格式记录日志
  option  dontlognull #不记录健康检查日志信息
  retries 3           #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
  redispatch				    #当服务器负载很高时,自动结束当前队列处理比较久的连接
  maxconn 2000					#最大连接数
  contimeout      5000			#连接超时时间
  clitimeout      50000			#客户端超时时间
  srvtimeout      50000			#服务器超时时间

#删除下面所有listen项–,添加
listen  webcluster 0.0.0.0:80		
    option httpchk GET /test.html	#检查服务器的test.html文件
    balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
    server inst1 192.168.172.20:80 check inter 2000 fall 3		#定义在线节点
    server inst2 192.168.172.30:80 check inter 2000 fall 3

#--参数说明----------------
balance roundrobin   #负载均衡调度算法
#轮询算法: roundrobin;最小连接数算法: leastconn;来源访问调度算法: source,类似于nginx的ip_hash

check inter 2000 #表示haproxy服务器和节点之间的一个心跳频率
fall 3   #表示连续三次检测不到心跳频率则认为该节点失效
若节点配置后带有""backup"表示该节点只是个备份节点,只有主节点失效该节点才会上。不携带"backup",表示为主节点,和其它主节点共同提供服务。

在这里插入图片描述
在这里插入图片描述

2、编译安装Nginx服务器(192.168.172.20、192.168.172.30)

systemctl stop firewalld
setenforce 0

yum install -y pcre-devel zlib-devel gcc gcc-c++ make 

useradd -M -s /sbin/nologin nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx      #启动nginx 服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

192.168.172.20

写入网页内容
echo "this is zzz web" > /usr/local/nginx/html/test.html

在这里插入图片描述

192.168.172.30

写入网页内容
echo "this is yyy web" > /usr/local/nginx/html/test.html

在这里插入图片描述

3、启动Haproxy服务(192.168.172.10)

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
cd /etc/init.d/
ls
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

service haproxy start	或	/etc/init.d/haproxy start

在这里插入图片描述

4、测试

在客户端使用浏览器打开 http://192.168.172.10/test.html ,不断刷新浏览器测试负载均衡效果
在这里插入图片描述
在这里插入图片描述

九、日志定义

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

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

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

systemctl restart rsyslog.service

tail -f /var/log/haproxy/haproxy-info.log		#查看haproxy的访问请求日志信息

总结

Nginx和LVS和Haproxy有什么区别

  • 1、Nginx
    支持正则
    只支持基于端口的健康检查
    不支持session 的直接保持,但能通过Ip _hash来解决
    对网络稳定性要求不高
    反向代理能力强
    nginx 社区活跃
  • 2、LVS
    只能基于四层端口转发
    在四层做分发作用,抗负载能力强
    应用范围广(几乎可以对所有应用做负载)
  • 3、Haproxy
    支持8种负教均衡策略
    仅做负载均衡软件使用,在高并发情况下性能优于Nginx
    支持URL健康检测、支持session保持

四层与七层负载均衡的主要区别

  • 四层负载均衡器是通过分析IP层及TCP/UDP层的流量实现的基于"IP +端口"的负载均衡,主要通过报文的目标地址和端口配合负载均衡算法选择后端真实服务器,确定是否需要对报文进行修改(根据需求,可能会修改目标地址、源地址、MAc地址等)并将数据转发至选出的后端真实服务器。
  • 七层负载均衡器是基于应用层信息(如URI、Cookies等)的负载均衡。主要依据报文的内容配合负载均衡算法选择后端真实服务器,然后再分发请求到真实服务器进行处理,也称"内容交换器"。客户端与负载均衡器、负载均衡器与后端真实服务器之间会分别建立CP连接。

Haproxy高性能负载均衡主要优点

  • Haproxy在负载均衡速度和并发处理上是优于
  • NginxHaproxy支持虚拟主机,可以工作在4、7层
  • 能够补充Nginx的一些缺点,比如session的保持、cookie的引导等工作
  • 支持url检测后端的服务器的状态
  • Haproxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡
  • 支持很多负载均衡算法,Round-robin(轮询)、weight-round-robin(加权轮询)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
HAproxy相关知识点以及搭建负载均衡 这条命令的作用是编译HAProxy的源代码,并将二进制文件安装到/usr/local/haproxy/bin下,可执行文件是针对特定的linux2628平台优化的版本。3、 HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。#从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg” 阅读详情

相关推荐

ISP-全局色调映射(GTM)算法简单实现

色调映射算法,色彩空间转换LAB

notgoodenouf的博客 2238

使用HAproxy搭建web群集原来这么简单(宇宙真的好谦虚啊,明明拥有一切,却叫太空)

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

Stevelu的技术博客 783

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3410

Haproxy搭建Web群集

●HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导,同时支持。Nginx、HAProxy都是基于应用层实现的软负载均衡,都支持四层和七层代理转发,且也支持正则。●Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS的配置、测试就要。LVS是基于Linux内核实现的软负载均衡,只支持四层代理转发,且不支持正则表达式处理,不能。●无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流。

qq_64335866的博客 1013

Windows下Colmap编译安装全攻略:从Boost到CUDA的避坑指南

本文详细介绍了在Windows系统下编译安装Colmap三维重建工具的完整流程与实战经验。针对Boost库版本兼容性、CUDA与Visual Studio的版本匹配等常见难题提供了具体的避坑指南和解决方案,帮助开发者高效完成从环境配置到最终部署的全过程。

weixin_28235513的博客 198

Vivado时序约束实战:input_delay在高速接口设计中的关键作用

本文深入探讨了在Vivado时序约束中,input_delay对于高速接口设计的关键作用。通过一个RGMII以太网接口调试的实际案例,解释了为何仅靠仿真正确而实际数据采集会失败,并揭示了set_input_delay约束的本质是告知时序分析工具外部芯片的时序关系,而非添加物理延迟。文章详细讲解了如何根据数据手册计算约束值、针对不同采样时钟方案(如移相时钟)进行约束,并指导如何通过时序报告验证约束效果,是解决FPGA高速接口时序问题的实战指南。

ee345的博客 252

Web服务器群集:使用Haproxy搭建Web集群

默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。① #修改haproxy主配置文件-----------------------------------修改以下内容global② #重启服务需要修改rsyslog配置,为了便于管理。

cronaldo91的博客 1239

字节跳动高频111道核心前端面试题解析,web开发增强

但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。自定义指令(v-check、v-focus)的方法有哪些?v-model是什么?

2401_84094620的博客 1199

高效多用的群集之Haproxy配合Nginx搭建Web集群

目录一、常见的Web集群调度器二、Haproxy应用分析三、Haproxy调度算法原理四、Haproxy搭建 Web 群集1、部署haproxy服务器2、编译安装Nginx服务器3、测试 Web集群五、日志定义 一、常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件 软件通常使用开源的LVS、Haproxy、Nginx LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好 硬件一般使用的比较多的是F5,也有很

ljj的学习笔记 1747

详解vit_base_patch16_224

ViT-Base模型的核心思想是将输入图像划分为多个小块(patches),并使用Transformer架构来处理这些小块。具体来说,ViT-Base使用16x16像素的patch大小,输入图像的尺寸为224x224像素,这意味着每张图像将被划分为49个patch(22416×22416=14×14=19616224​×16224​=14×14=196个patch)。ViT-Base(ViT-B/16)通过将图像处理任务转化为序列处理任务。

具身机器人和通用AI 3221

10、现代统计方法:趋势面分析、薄板样条与广义线性模型

本文系统介绍了空间预测建模中的三种现代统计方法:趋势面分析(TSA)、薄板样条(TPS)和广义线性模型(GLM)。详细阐述了每种方法的原理、实现步骤、参数优化与预测评估,并结合R语言代码示例展示了在实际数据中的应用。文章还提供了方法对比流程图与土壤湿度预测案例,帮助读者根据数据特征选择合适模型,提升空间预测的准确性与可靠性。

play7的博客 156

高效多用的群集之Haproxy加Nginx搭建web集群

一、常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件 软件通常使用开源的LVS、Haproxy、Nginx * LVS性能最好,但是搭建相对复杂 * Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好 硬件一般使用的比较多的是F5,也有很多人使用梭子鱼、绿盟等国内产品 二、Haproxy应用分析 LVS在企业应用中抗负载能力很强,但存在不足 * LVS不支持正则处理,不能实现动静分离 * 对于大型网站,LVS的实施配置复杂,维护成功

weixin_62452835的博客 215

SAP ABAP SM50 的另类用途 - ABAP 工作进程对数据库表读取操作的检测

今天是2020年五一国际劳动节,Jerry祝大家劳动节快乐。 虽然五一国际劳动节来源于一百多年前国外无产阶级的一次大罢工,但由于国情原因,国内很多行业的从业人员,好像天生就是劳碌命。比如程序员行业。 2014年五一劳动节,我在和一个不是总能重现的SAP CRM incident做斗争。详情参考Jerry之前的文章记一次SAP开发工程师给微软Azure报incident的体验. 当时处理完这个复杂...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 8675

高效多用群集之Haproxy配合Nginx搭建Web集群)

高效多用群集之Haproxy配合Nginx搭建Web集群一、常见的Web集群调度器二、Haproxy应用分析三、Haproxy调度算法原理四、Haproxy搭建Web群集4.1、编译安装Nginx服务器4.2、部署Haproxy服务器4.3、测试Web集群 一、常见的Web集群调度器 二、Haproxy应用分析 三、Haproxy调度算法原理 四、Haproxy搭建Web群集 4.1、编译安装Nginx服务器 4.2、部署Haproxy服务器 4.3、测试Web集群 ...

ShiXiao0121的博客 260

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

DAY 53 Haproxy负载均衡集群

软件通常使用开源的LVS、Haproxy、 Nginx硬件一般使用比较多的是F5、Array,也有很多人使用国内的一些产品,如梭子鱼、绿盟等硬件的效果比软件好,更加稳定,但管理成本高。

weixin_57560240的博客 836

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

使用 Haproxy 搭建高可用 Web 群集

Haproxy 作为开源负载均衡领域的标杆工具,凭借其高性能、高可用性和丰富的功能特性,成为构建 Web 群集的理想选择。负载均衡原理:理解轮询(RR)、最小连接数(LC)、源地址哈希(SH)等调度算法的适用场景和配置方法。群集搭建流程:从环境规划、软件安装到核心配置,完成 Haproxy+Nginx 群集的全流程部署。功能验证与优化:通过高性能和高可用性测试验证群集功能,利用日志分析和参数优化提升群集性能。

2501_91112123的博客 791

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Haproxy搭建web群集

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

yunjisuan99cyh的博客 564

HaProxy搭建web集群

Haproxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。LVS在企业应用中抗负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成功相对较高Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件 适用于负载大的Web站点 运行在硬件上可支持数万计的并发连接的连接请求。1、可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美2、最高可以同时维护4000

weixin_67470255的博客 727
上一篇: LVS-DR+Keepalived 高可用群集
下一篇: Nginx+Tomcat负载均衡、动静分离集群
IHBOS
博客等级 码龄6年 112粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值