haproxy负载均衡+keepalived高可用

news2025/2/25 15:12:18

LVS和haproxy、nginx做负载均衡时的区别

调度算法

LVS:轮询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)、源地址哈希值(sh)、目的地址哈希(dh)

haproxy:轮询(roundrobin)、加权轮询(static-rr)、最少连接(leastconn)、源地址ip(source)

uri、url_param、hdr(name)(根据http请求头)、rdp-cookie(根据客户端cookie锁定)

nginx:rr(轮询)、wrr(加权轮询)、最小连接、最短响应时间(fair)、ip_hash、uri_hash

**区别**

1、lvs是基于内核实现的软负载均衡,Nginx和haproxy是基于第三方应用实现的软负载均衡

2、lvs可实现四层负载均衡,nginx和haproxy可以实现四层和七层。haproxy可以可以提供tcp和http的综合解决方案。

3、lvs状态监控功能单一,而haproxy在状态检测方面功能更为强大,可以支持端口、url、脚本等。

4、haproxy功能强大,但是总体性能低于lvs的四层负载均衡

5、nginx主要用七层反向代理处理web服务器的网页动静分离,对于集群节点的健康检测功能不强,性能没有haproxy好。

Haproxy搭建 Web 群集

Haproxy服务器1:192.168.255.128(MASTER)  

Haproxy服务器2:192.168.255.134 (BACKUP)
Nginx服务器1:192.168.255.130
Nginx 服务器2:192.168.80.131     
客户端:192.168.255.132

一、负载均衡器

方案一 yum安装haproxy

yum -y install haproxy keepalived
vim /etc/haproxy/haproxy.cfg

 

 方案二 编译安装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位系统
----------------------------------------------------------------------------------------------------------

3.Haproxy服务器配置
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

cd /etc/haproxy/
vim haproxy.cfg
global        #全局配置,主要用于定义全局参数,属于进程级的配置,通常和操作系统配置有关
--4~5行--修改,定义haproxy日志输出设置和日志级别,local0为日志设备,默认存放到系统日志
        log /dev/log   local0 info        #修改
        log /dev/log   local0 notice    #修改
        #log loghost    local0 info
        maxconn 4096            #最大连接数,需考虑ulimit -n限制,推荐使用10240
--8行--注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉
        #chroot /usr/share/haproxy
        uid 99                    #用户UID
        gid 99                    #用户GID
        daemon                    #守护进程模式
        nbproc 1                #添加,设置并发进程数,建议与当前服务器CPU核数相等或为其2倍

defaults       #配置默认参数,这些参数可以被用到Listen,frontend,backend组件     
        log     global            #引入global定义的日志格式
        mode    http            #模式为http(7层代理http,4层代理tcp)
        option  httplog            #日志类别为http日志格式
        option  dontlognull        #不记录健康检查日志信息
        retries 3                #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch                #当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000            #最大连接数,“defaults”中的值不能超过“global”段中的定义
        #contimeout 5000        #设置连接超时时间,默认单位是毫秒
        #clitimeout 50000       #设置客户端超时时间,默认单位是毫秒
        #srvtimeout 50000       #设置服务器超时时间,默认单位是毫秒
        timeout http-request 10s     #默认http请求超时时间
        timeout queue 1m           #默认队列超时时间
        timeout connect 10s        #默认连接超时时间,新版本中替代contimeout,该参数向后兼容
        timeout client 1m        #默认客户端超时时间,新版本中替代clitimeout,该参数向后兼容
        timeout server 1m        #默认服务器超时时间,新版本中替代srvtimeout,该参数向后兼容
        timeout http-keep-alive 10s        #默认持久连接超时时间
        timeout check 10s        #设置心跳检查超时时间


--删除下面所有listen项--,添加
listen  webcluster 0.0.0.0:80    #haproxy实例状态监控部分配置,定义一个名为webcluster的应用
        option httpchk GET /test.html    #检查服务器的test.html文件
        balance roundrobin                #负载均衡调度算法使用轮询算法roundrobin
        server inst1 192.168.10.15:80 check inter 2000 fall 3        #定义在线节点
        server inst2 192.168.10.16:80 check inter 2000 fall 3
        
---------------------参数说明---------------------------------------------------------------------------
balance roundrobin        #负载均衡调度算法
#轮询算法:roundrobin;最小连接数算法:leastconn;来源访问调度算法:source,类似于nginx的ip_hash

check inter 2000        #表示启用对此后端服务器执行健康检查,设置健康状态检查的时间间隔,单位为毫秒
fall 3                    #表示连续三次检测不到心跳频率则认为该节点失效
若节点配置后带有“backup”表示该节点只是个备份节点,仅在所有在线节点都失效该节点才启用。不携带“backup”,表示为主节点,和其它在线节点共同提供服务。
----------------------------------------------------------------------------------------------------------

4.添加haproxy 系统服务
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
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网站服务即可)

三、keepalived高可用配置

二三步戳这里!
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023有潜力的新药都有哪些?新药筛选方法总结

2023有潜力的新药都有哪些?这是一道蕴含无限可能性和未知挑战的问题。新药研发是制药公司不断追求的目标,每一次成功都可以带来巨额利润,改善患者生命质量,成就公司声誉。但与此同时,新药研发风险也是极大的&#xff0…

电梯导航栏的实现

点击跳到指定位置类似于电梯导航 .w {width: 1200px;margin: 0 auto; } .fixedtool {position: fixed;top: 100px;left: 50%;margin-left: -676px;width: 66px;background-color: #fff;display: none; }.fixedtool li {height: 32px;line-height: 32px;text-align: center;fo…

基于dsp+fpga的半导体运动台高速数据采集FPGA endac设计(三)

EnDat 双向串行通信协议的实现 数据(测量值或参数)可以在位置编码器和 EnDat 协议内核之间进行双向传输, EnDat 协议内核的收发单元支持 RS-485 差分信号传输,数据传输与传感伺服控制系统 生成的时钟脉冲同步。传输的数据…

如何将Postman API测试转换为JMeter以进行扩展

许多测试工程师使用Postman进行API测试自动化。他们发现端点,发出请求,创建测试数据,运行回归测试,使用Newman等实现API测试的持续集成。但是,Postman有一定的测试限制。希望获得更多负载测试能力的开发人员&#xff0…

系统集成项目管理工程师 笔记(第10章:项目质量管理)

文章目录 10.1.2 质量管理及其 发展史 35610.1.3 项目质量管理 35810.2.2 规划质量管理的输入 35910.2.3 规划质量管理的工具与技术 3601、成本效益分析法2、质量成本法(一致性成本【预防、评价】 和 非一致性成本【内部、外部】)3、七种基本质量工具&am…

数字设计小思 - 谈谈时钟:数字系统的心脏

前言 本系列整理数字系统设计的相关知识体系架构,为了方便后续自己查阅与求职准备。时钟作为数字系统中的“心脏”,其设计的质量好坏直接关乎整个系统的稳定性,本文主要介绍了数字设计中的常见的时钟产生电路和时钟类型,并进行相…

音视频八股文(7)-- 音频aac adts

AAC介绍 AAC(Advanced Audio Coding)是一种现代的音频编码技术,用于数字音频的传输和存储领域。AAC是MPEG-2和MPEG-4标准中的一部分,可提供更高质量的音频数据,并且相比于MP3等旧有音频格式,AAC需要更少的…

【经典题】二叉搜索树与双向链表

二叉搜索树与双向链表链接 解题思路 思路1 : 中序遍历,将节点放进vector中,再改链接关系,这很容易想出并解决,但这样明显不符合题意。 思路2: 这道题目要求将一个二叉搜索树转换成一个排序的双向链表&a…

php连接sqlserver

1.使用工具 Wampserver--3.3 sqlserver2023 php7.4.33 2.连接流程 1.下载Microsoft Drivers for PHP for SQL Server 下载地址:下载 Microsoft Drivers for PHP for SQL Server - PHP drivers for SQL Server | Microsoft Learn 2.下载Microsoft ODBC Driver …

简记二分算法模板与代码案例:整数二分和浮点数二分

本文以 Java 语言实现,整理的代码模板适用于编程竞赛。对代码模板原理的讲解不多,主要记录一下如何使用。 目录 一、算法模板 (1)整数二分 (2)浮点数二分 二、例题 例题:acwing-789.数的范…

开源网安入选“2023年中国信通院开源供应商名录”

近日,为进一步推进开源供应链安全合规发展,中国信息通信研究院云大所发布了“2023年中国信通院开源供应商名录”(简称名录),名录供应商均为通过可信开源供应链系列评估的企业。名录范围涵盖云计算、大数据、中间件、数…

【致敬未来的攻城狮计划】第1期 作业汇总贴 + 获奖公布

​ 文章目录 一、写在前面二、种子学员介绍三、作业贴汇总四、小小总结五、获奖公布六、学员有话说七、特别致谢 一、写在前面 时间过得真快,距离 【致敬未来的攻城狮计划】第1期 的发起,已经过去一个多月了,而第1期的真正学习考核期也将在…

虹科案例 | 如何通过智能、非接触式测量解决方案,提高起重机的安全和效率?

PART 1 案例详情 自建造初期以来,起重机行业已经走了很长一段路。技术的使用在行业进步中发挥了重要作用,降低了使用桥式起重机的危险性。特别是,智能、非接触式测量解决方案通过使用高架升降机更安全、更高效、更高效,为行业的进…

如何将化学分子SMILES字符串转化为Pytorch图数据结构——ESOL分子水溶性数据集解析

硬核原创,转载请注明出处: https://leytton.blog.csdn.net/article/details/130406553 一、前言 在用Pytorch图神经网络对化学分子进行数据分析的时候,经常使用现有的数据集。看到自动处理完毕的数据结构,里面的特征值让我们一脸…

springsecurity工作流程

Spring Security 的工作流程如下: 1.当用户请求一个受保护的资源时,Spring Security 的过滤器链会拦截该请求。 2.然后 Spring Security 会判断该请求是否认证(authenticated)和授权(authorized)。 认证(Authentication):验证用户身份,判断用户是否能登录系统。Spring Securi…

Linux应用编程(线程同步)(互斥锁)

对于一个单线程进程来说,它不需要处理线程同步的问题,所以线程同步是在多线程环境下可能需要注意的一个问题。线程的主要优势在于,资源的共享性,譬如通过全局变量来实现信息共享,不过这种便捷的共享是有代价的&#xf…

docker网桥冲突解决方法

Docker网桥网段冲突导致访问不到容器问题 三种情况 一、docker0所用网段与局域网所用网段相同,导致网桥冲突,这会造成冲突网段无法访问docker服务。 解决办法: 1.停止docker,删除冲突网桥 systemctl stop docker ip link del doc…

干货 | 中科院心理所考研复试经验分享

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 此时此刻,23年考研的小伙伴估计正在为复试进行准备吧,大家都准备得怎么样了呢? 今天为大家带来的就是我国顶级心理学研究结构—中科院心理所…

leetcode19_删除链表的倒数第 N 个结点

文章目录 题目详情分析Java代码实现 题目详情 leetcode19 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 分析 暴力的方法,两趟遍历,第一个遍历记录总的节点数目,第二次遍历到总结点数-N个位置&…

PyTorch——利用Accelerate轻松控制多个CPU/GPU/TPU加速计算

PyTorch——利用Accelerate轻松控制多个CPU/GPU/TPU加速计算 前言官方示例控制多个CPU/GPU/TPU简单说一下设备环境导包加载数据 FashionMNIST创建一个简单的CNN模型训练函数-只包含训练训练函数-包含训练和验证训练 参考链接 前言 CPU?GPU?TPU&#xff…