Haproxy的优点以及搭建Web群集

为什么选择 HAProxy?看完这些特性你就明白了! HAProxy 支持客户端的 keepalive 功能,减少客户端与 HAProxy 的多次握手导致的资源浪费,让多个请求在一个 TCP 连接中完成。HAProxy 提供更好的统计数据接口,其中 Web 界面显示后端集群中各个服务器的接收、发送、拒绝、错误等数据的统计信息。基于源的粘性,类似 Nginx 的 ip_hash 功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器。详细的健康状态检测,Web 接口中有关于对上游服务器的健康检测状态,并提供了一定的管理功能。 阅读详情

前言

Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理

常见的Web集群调度器

  • 目前常见的Web集群调度器分为软件和硬件
  • 软件通常使用开源的LVS、Haproxy、Nginx
  • 硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等

Haproxy应用分析

LVS在企业应用中抗负载能力很强,但存在不足

  • LVS不支持正则处理,不能实现动静分离
  • 对于大型网站,LVS的实施配置复杂,维护成本相对较高

Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件

  • 适用于负载大的Web站点
  • 运行在硬件上可支持数以万计的并发连接的连接请求

Haproxy调度算法原理

Haproxy支持多种调度算法,最常用的有三种

  • RR(Round Robin)
    RR算法是最简单最常用的一种算法,即轮询调度
  • LC(Least Connections)
    最小连接数算法,根据后端的节点连接数大小动态分配前端请求
  • SH(Source Hashing)
    基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度

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

Haproxy在负载均衡速度和并发处理上 是由于Nginx
Haprexy支持虚拟主机,可以工作在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地址等)并将数据转发至选出的后端真实服务器。

七层负载均衡 是基于应用层信息(如URL、Cookie等)的负载均衡。
主要依据报文的内容配合负载均衡算法选择后端真实服务器,然后在分发请求真实服务器进行处理,也称" 内容交换器 "。

客户端与负载均衡器、负载均衡器与后端真实服务器之间会分别建立TCP连接。

Haproxy搭建Web群集

Haporxy安装包

环境搭建

主机操作系统IP地址所需软件/安装包/工具
Haproxy-ServerCentOS7192.168.80.10haproxy-1.5.19.tar.gz
Nginx-Server1CentOS7192.168.80.20nginx-1.12.0.tar.gz
Nginx-Server2CentOS7192.168.80.30nginx-1.12.0.tar.gz
客户端CentOS7192.168.80.40

部署Haporxy服务器(192.168.80.10)

关闭防火墙,将Haporxy安装包传到/opt目录下

systemctl stop firewalld
setenforce 0

cd /opt
haproxy-1.5.19.tar.gz

在这里插入图片描述

编译安装 Haproxy

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

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

参数说明:

TARGET=linux26 #内核版本,
#使用uname -r查看内核,如:2.6.18-371.el5,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628

ARCH=x86_64 #系统位数,64位系统

Haproxy服务器配置

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

cd /etc/haproxy/

在这里插入图片描述
–4~5行–修改,配置日志记录,local0为日志设备,默认存放到系统日志

vim haproxy.cfg
global
		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			#定义一个名为appli4-backup的应用
        option httpchk GET /test.html	#检查服务器的test.html文件
        balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
        server inst1 192.168.80.20:80 check inter 2000 fall 3		#定义在线节点
        server inst2 192.168.80.30:80 check inter 2000 fall 3

在这里插入图片描述

部署节点服务器

编译安装Nginx(192.168.80.20、192.168.80.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

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

–192.168.80.20—

echo "this is chen web" > /usr/local/nginx/html/test.html

在这里插入图片描述

–192.168.80.30—

echo "this is qian web" > /usr/local/nginx/html/test.html

在这里插入图片描述
两个nginx都要创建

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

nginx      #启动nginx 服务

在这里插入图片描述

启动Haproxy 服务(192.168.80.10)

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
cd /etc/init.d/
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

在这里插入图片描述

测试web服务集群

在测试机上(192.168.80.40)
在这里插入图片描述
在这里插入图片描述

日志管理

默认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的访问请求日志信息

总结

★★★LVS 、 haproxy、nginx区别(场景、优缺点对比等)面试题/话术

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


Nginx和LVS HAproxy 有什么区别

nginx

  1. 支持正则
  2. 只支持基于端口的健康检查
  3. 不支持session 的直接保持,但能通过Ip_hash来解
  4. 对网络稳定性要求不高
  5. 反向代理能力强
  6. nginx社区活跃

lvs

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

haproxy

  1. 支持8种负教均衡策略
  2. 仅做负载均衡软件使用,在高并发情况下性能优于
  3. Nginx支持URL健康检测、支持session保持
第四章 haproxy搭建web群集 1、源地址hash2、设置cookie3、会话粘性表stick-table轮询模式下没有开启cookie和stick table时,访问haproxy服务器能看到动态页面在两台nginx服务器上切换,没有会话保持固定访问到一台服务器。①源地址hash重启服务后,会话保持在30的这台nginx服务器上了,意味着实现了会话保持。但此方法容易导致服务器负载不均衡的问题,解决这个问题可以使用下面的方法去实现会话保持。②设置cookie。 阅读详情

相关推荐

IsaacLab 从入门到精通(一) 环境配置和依赖安装

本系列文章将针对机器人操作任务中的强化学习平台IsaacLab提供较为全面的教程

DejaWu33的博客 1万+

Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

第一章 实验环境 硬件环境:Linux服务器一台,IP地址:192.168.80.10;WIN7客户端一台,拥有OUTLOOK2013,测试用,与服务器在同一局域网内。 Linux系统环境,如下图:第二章 实验内容一:搭建DNS服务器二:搭建postfix服务器及普通发信三:普通收信四:认证收信五:squirrelmail收发邮件(搭建网页收发邮件)六:邮件群发功能配置七:邮件发送容量大小配...

weixin_34367257的博客 795

行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载

ReID技术概述什么是ReID一般流程Re-ID特点研究现状难点数据集reid常用数据集以及下载链接评价指标实现思路研究方式基于表征学习基于度量学习基于局部特征全局特征切片姿态基于视频序列RQEN基于GANCamStyleDG-NetGAN总结对比未来方向建议文献 什么是ReID 行人重识别是指利用计算机视觉技术,判断在不同时间段、不同监控下出现的行人图像是否属于同一人员的技术。行人重识别是最近几年在视频分析领域下热门的研究领域,可以看做是人脸识别应用的拓展。现在大街上的监控较多,由于设备质量、成像光线、.

留缘的博客 1万+

LVS--Nginx、HAproxy比较(3)

Nginx/LVS/HAProxy简单介绍: Nginx:专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。 LVS:使用Linux内核集群实现一个高性能、高可用的负载均衡服务器,具有很好的可伸缩性(Scalability)、可靠性(Reliablity)和可管理性(Managea

修行之路 1060

别再调参了!用Simulink手把手教你搞定FOC电机速度环PI控制器(附模型下载)

本文详细介绍了如何使用Simulink搭建FOC电机速度环PI控制器,通过模最优准则和系统化调试方法,避免传统手动调参的繁琐过程。文章包含从传递函数推导到参数自动整定的完整流程,并提供了实战调试技巧与异常处理指南,帮助工程师快速实现电机控制系统的稳定运行。

weixin_42519985的博客 415

一个超酷的开源uHand2.0机械手掌项目

uHand2.0是深圳乐幻索尔公司开源的一款机械手掌,它长下面这个样子:1、uHand2.0外观图之前在公众号就分享过视频:学习嵌入式可以带娃,不信你们看2、uHand2.0硬件原理图看...

Bruce.yang的嵌入式之旅 4460

实现centos配置成路由详解

1)eth0配置:(即连接CentosClient1的网卡使用的是net8,同时也作为它的网关;2)eth1配置:(即连接CentosClient2的网卡用的是仅主机模式vmnet1)2)eth1配置:(即连接CentosR2的网卡用的是自定义的vmnet12)1)eth0配置:(即连接CentosR1的网卡用的是自定义的vmnet12)2)eth1配置:(即连接CentosR3的网卡用的是自定义的vmnet13)1)eth0配置:(即连接CentosR2的网卡用的是自定义的vmnet13)

justlpf的专栏 3015

智护健康:基于 ESP32 的可穿戴式心率血氧远程监测手环设计与实现

随着健康管理理念的普及,可穿戴式健康监测设备成为刚需。本文设计了一款基于 ESP32 芯片的可穿戴式心率与血氧远程监测手环,通过集成专业生物传感器采集生理数据,借助 ESP32 的无线通信能力实现数据远程传输,搭配手机 APP 与云平台完成数据存储、分析与预警。文中详细阐述了硬件选型、模块接线、软件设计流程及核心代码实现,该手环具备低功耗、高精度、实时性强等特点,可满足日常健康监测与远程照护需求。

weixin_42300449的博客 1199

部署Harbor

案例概述:将项目全部打包成镜像部署到私有仓库,选择用Docker Harbor 具有可视化的Web管理界面。实验环境:虚拟机192.168.80.10(版本号:Centos7)

qq_67605201的博客 2958

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1321

【ROS2】从yaml文件中读取参数配置

ROS2:从yaml中读取参数,到节点;使用C++演示参数的增、删、改、查、遍历、监听变化

郭老二 1284

使用 Haproxy 搭建 Web 群集(一)

Haproxy 是一款可以提供高可用性、负载均衡、及基于 TCP 和 HTTP 应用的代理软件。 特别适用于负载特别大的 Web 站点,运行在当前的硬件上可支持数以万计的并发连接请求。 软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用 的软负载实现。LVS 就是基于 Linux 操作系统实现的一种软负载,HAProxy 就是开源的并且基 于第三应用实现的软负载。 本章详细介绍使用aproxy 搭建 Web 集群。

Linux运维老纪的博客 1092

新政下的绿电直连项目经济性分析:模式创新与价值重构

随着全球气候治理与低碳转型进程不断加速,绿电直连作为新能源就近消纳的创新模式,正成为破解新能源消纳瓶颈、规避碳关税壁垒的核心路径。2025年9月,国家发展改革委、国家能源局发布《关于完善价格机制促进新能源发电就近消纳的通知》(1192号文),为绿电直连项目的经济性分析与效益测算提供了明确的政策依据。本文将基于新政框架,深入解析绿电直连项目的经济性影响因素、盈利模式与优化路径,并结合案例与量化模型,为项目投资决策提供系统参考。

getusushu的博客 140

LVS负载均衡群集:使用Haproxy搭建Web群集

在客户端访问 http://192.168.10.101/test.html后,可以使用 tail -f/var/log/haproxy.log 即时査看 Haproxy 的访问请求日志信息。Haproxy 的日志默认输出到系统的 syslog 中,查看起来不是非常方便,为了更好地管理 Haproxy 的日志,在生产环境中一般单独定义出来,定义的方法如下所述。关于 Haproxy 的参数优化,以下列举了几个关键的参数,并对各参数的生产环境的优化 建议做了说明,如表所示。

zlyyljlckx的博客 1544

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Haproxy搭建Web群集

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

qq_64335866的博客 1013

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

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

使用 Haproxy 搭建高可用 Web 群集

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

2501_91112123的博客 791

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

使用Haproxy搭建web群集

Haproxy是一个使用C语言编写的自由及开放源代码的软件,其提供高可用性、负载均衡,并且是基于TCP和HTTP的应用程序代理特别适用于负载大的Web站点,这些站点通常又会需要会话保持或七层处理。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进当前的架构中并同时保护当前Web服务器不被暴露到网络上Haproxy实现了一种事件驱动,单一进行模型,次模型支持非常大的并发连接数。

2503_91074196的博客 711

Haproxy搭建web群集及Haproxy日志管理

Haproxy搭建web群集及Haproxy日志管理Haproxy搭建web群集及Haproxy日志管理Haproxy简介常见的web集群调度器Haproxy应用分析Haproxy调度算法原理Haproxy的主要特性HAProxy的优点LVS、Haproxy、nginx区别部署Haproxy搭建web群集部署准备部署haproxy服务器(192.168.80.11)关闭防火墙、安全功能并且传包到/opt编译安装HaproxyHaproxy服务器配置添加haproxy系统服务编译安装Nginx服务器(192.

Yusheng9527的博客 482

【Haproxy 搭建Web 群集】

Haproxy 的集群搭建

DiKL_Y的博客 1800

Haproxy搭建Web集群

Haproxy负载均衡集群,包含基础介绍,部署步骤图文详解,与各负载均衡方法的对比等

欲买桂花同载酒 1995

LVS Haproxy搭建Web群集

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

Hanxuhanhan的博客 357

HAProxy概述、搭建Web群集

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

Axic123的博客 925

运用 Haproxy 搭建 Web 群集

Haproxy 是目前比较流行的一种 群集调度工具 --------------- 客官慢走

量子黑洞、的博客 321

Haproxy搭建 Web 群集

Haproxy

Kiro君的博客 231
上一篇: LVS-DR群集和Keepalived
下一篇: Nginx + Tomcat 动静分离
Jun____________
博客等级 码龄6年 15粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值