Haproxy负载均衡集群

一、haproxy概念:

Haproxy:他也是常用的负载均衡转发

nginx支持四层转发,七层转发

haproxy也可以四层和七层转发

LVS的DR和NAT是基于四层转发

TUN是四层+七层

基于四层的转发:

  1. LVS
  2. nginx
  3. haproxy

基于七层的转发:

  1. nginx
  2. haproxy

1、haproxy:

主要用于高并发的web站点。工作原理和nginx一样。lvs也一样

可以支持一万以上的并发请求。

高性能的tcp和http负载均衡器

2、haproxy支持的功能:
  1. tcp和http的反向代理
  2. 支持https的代理配置
  3. 可以针对http请求添加cookie,转发到后端服务器(添加缓存)
  4. 也支持主备服务器切换(keepalived)
  5. 可以实现基于端口的实时监控
  6. 压缩响应报文

3、haproxy缺点:

1、haproxy是单节点部署,单实例运行,代理服务器出现故障,整个负载集群全部不可用(要结合keepalived)

要用haproxy+keepalived实现代理地址的高可用

2、haproxy是一个无状态的负载均衡,没缓存,也灭有会话保持,靠应用程序实现会话保持。状态不是保存在代理服务器,而是在后端服务器,或者依靠Cookie

3、haproxy日志问题:haproxy的日志比较简单,只提供基本的请求日志和错误日志。需要更高级的日志。要人工自定义

4、haproxy的特点:
  1. 可靠性和稳定性非常好,基本上可以和f5 BIG负载均衡的硬件设备相媲美
  2. 可以同时维护4万-5万个并发连接,单位时间内处理最大请求数2万个
  3. 支持8种负载均衡算法。但是haproxy不自带缓存功能,但是可以支持会话保持
  4. 也支持配置虚拟主机功能(可以结合keepalived)

5、haproxy的负载均衡算法:(要写全)
  1. roundrobin 轮询
  2. static-rr 加权轮询
  3. leastconn 最小连接数
  4. source 根据请求的源ip进行调度
  5. uri 根据请求地址进行调度
  6. url param 根据URL参数实现调度
  7. hdr(name)根据http的请求头锁定每一次http的请求
  8. rdp-cookie(name)表示根据Cookie的名称来锁定每一次请求

6、lvs nginx haproxy总结:

1、LVS基于linux内核实现负载均衡,性能最高,但是对系统硬件要求也比较高

haproxy和nginx基于第三方应用实现负载均衡,性能相对较低。(nginx三者最低)

2、LVS可以实现ip+端口的四层负载均衡,无法实现基于http请求的转发。haproxy和nginx都可以实现四层和七层的转发

3、LVS只能实现四层转发,监测的状态只能是单一的功能(检测端口)

haproxy可以实现监测端口、uri也可以

4、haproxy虽然功能强大,但是整体性能低于LVA。nginx的性能低于haproxy

性能排序:LVS——haproxy——nginx(bug多,稳定差,但处理小集群足够)

5、nginx主要应用还是web服务或者缓存服务器,nginx的stream模块(四层)和upstream

(七层)也可以支持集群,但是对节点的健康检查能力较弱,没有LVS和haproxy的监控性能强

二、haproxy实验:

  1. 搭建
  2. 实现四层和七层
  3. 如何实现haproxy的日志单独存放

关闭防火墙

安装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=linux2628 #内核版本

Haproxy服务器配置:

mkdir /etc/haproxy

cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/

 timeout http-request 10s

 timeout queue 1m

 timeout connect 10s

 timeout client 1m

 timeout server 1m

 timeout http-keep-alive 10s

 timeout check 10s

下面的全部删除

在下面再插入:

check inter 2000 fall 3

check intet 开启对后端服务器的健康检查,检查的时间间隔: 2000毫秒fall 3 表示连续3次检测不都后端服务器的心跳线,则认为该节点失效

haproxy系统服务的添加 :

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy

chmod 777 /etc/init.d/haproxy

chkconfig --add /etc/init.d/haproxy

cd /etc/init.d

ln -s /usr/local/sbin/haproxy /usr/sbin

软连接一定要是绝对路径

systemctl restart haproxy

后端RS配置:

后端RS启动nginx 改静态页面index.html

关闭nginx的keepalive_timeout

访问代理服务器:

四层转发实验:

注释掉之后创建新的

重启haproxy

访问代理服务器:

Haproxy的日志重定义:

重启服务:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【python与数据结构】(leetcode算法预备知识)

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ python与数据结构 Python 中常见的数据类型数据结构1.数组(Array)2.链表(Linked List)3.哈希表(Hash Table)4.队列(Queue&#x…

洛谷 B2029 大象喝水 C++代码

题目描述 AC Code #include<bits/stdc.h> using namespace std; int main() {int h,r;cin>>h>>r;double val;val3.14*r*r*h;int ans20000/val;ans;cout<<ans<<endl;return 0; }

动手学深度学习(李沐)的pytorch版本(包含代码和PDF版本)

目录 网址&#xff08;特别适合自学&#xff09; 说明: 代码与PDF版 网址&#xff08;特别适合自学&#xff09; 传送门 界面一览&#xff1a; 说明: github上一个项目将《动手学深度学习》从mxnet改为了pytorch实现。感谢大佬们的工作。   特别说明该电子版网页是通过do…

JVM调优(10)JVM的运行时数据区

一、概述 对于 C C 来说&#xff0c;在内存管理领域&#xff0c;JVM既拥有最高的权利&#xff0c;但是同时他们又是从事最基础工作的劳动人员&#xff0c;因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说&#xff0c;再虚拟机自动内存管理的帮助下&#xff0…

2000-2021年三批“智慧城市”试点名单匹配数据

2000-2021年三批“智慧城市”试点名单匹配数据 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;行政区划代码、地区、所属省份、年份、智慧城市试点、最早试点年份 3、来源&#xff1a;住建部公布的三批“国家智慧城市名单” 4、说明&#xff1a;内含原始文件和匹配结…

Liunx两台服务器实现相互SSH免密登录

一、首先准备两台Linux虚拟机当作此次实验的两台服务器 服务器1&#xff1a;server IPV4&#xff1a;192.168.110.136 服务器2&#xff1a;client IPV4&#xff1a; 192.168.110.134 二、准备阶段 [rootserver ~]# systemctl disable firewalld #关…

Web3 治理实践探讨:如何寻找多元化发展路径?

Web3 领域变革正崭露头角&#xff0c;而社区治理开始成为行业热议话题。Web3 项目如何探寻多元化建设的解困路径&#xff0c;究竟是治理模型的精进成为首要问题&#xff0c;还是吸纳更多资金与组织教育培训&#xff0c;让开发者成为项目建设的中坚力量&#xff1f;本期 TinTinW…

知识分享|分段函数线性化及matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all;gn10;tn1;x_pfsdpvar(1, tn,…

【Python爬虫三天从0到1】Day1:爬虫核心

目录 1.HTTP协议与WEB开发 &#xff08;1&#xff09;简介 &#xff08;2&#xff09;请求协议和响应协议 2. requests&反爬破解 &#xff08;1&#xff09;UA反爬 &#xff08;2&#xff09;referer反爬 &#xff08;3&#xff09;cookie反爬 3.请求参数 &#x…

程序设计语言

编译解释 传参还是传值 编译原理

Centos使用tomcat部署jenkins

jenkins的最新版本已经不在支持jdk8&#xff0c;支持的jdk环境如下&#xff1a; 安装jdk环境 yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64安装tomcat tomcat官网 cd /optwget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat…

大数据-Storm流式框架(七)---Storm事务

storm 事务 需求 storm 对于保证消息处理&#xff0c;提供了最少一次的处理保证。最常见的问题是如果元组可以被 重发&#xff0c;可以用于计数吗&#xff1f;不会重复计数吗&#xff1f; strom0.7.0 引入了事务性拓扑的概念&#xff0c;可以保证消息仅被严格的处理一次。因此可…

leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)

2578. 最小和分割 - 力扣&#xff08;LeetCode&#xff09; 给你一个正整数 num &#xff0c;请你将它分割成两个非负整数 num1 和 num2 &#xff0c;满足&#xff1a; num1 和 num2 直接连起来&#xff0c;得到 num 各数位的一个排列。 换句话说&#xff0c;num1 和 num2 中所…

黑客在Pwn2Own Toronto上以58个零日漏洞赚取超过100万美元

Pwn2Own Toronto 2023黑客大赛已经圆满结束&#xff0c;安全研究人员通过攻击消费类产品的58个零日漏洞&#xff08;以及多个漏洞碰撞&#xff09;赚取了1,038,500美元。此次比赛由趋势科技的零日倡议&#xff08;Zero Day Initiative&#xff0c;简称ZDI&#xff09;组织&…

目标检测及锚框、IoU

文章目录 1. 目标检测2. 锚框3. IoU - 交并比4. 赋予锚框标号5. 使用非极大值抑制&#xff08;NMS&#xff09;输出 1. 目标检测 物体检测&#xff08;目标检测&#xff09;是计算机视觉和数字图像处理的热门方向&#xff0c;意在判断一幅图像上是否存在感兴趣物体&#xff0c…

在pycharm中,远程操作服务器上的jupyter notebook

一、使用场景 现在我们有两台电脑&#xff0c;一台是拥有高算力的服务器&#xff0c;另一台是普通的轻薄笔记本电脑。如何在服务器上运行jupyter notebook&#xff0c;同时映射到笔记本电脑上的pycharm客户端中进行操作呢&#xff1f; 二、软件 pycharm专业版&#xff0c;jupy…

【Python · PyTorch】线性代数 微积分

本文采用Python及PyTorch版本如下&#xff1a; Python&#xff1a;3.9.0 PyTorch&#xff1a;2.0.1cpu 本文为博主自用知识点提纲&#xff0c;无过于具体介绍&#xff0c;详细内容请参考其他文章。 线性代数 & 微积分 1. 线性代数1.1 基础1.1.1 标量1.1.2 向量长度&…

【LeetCode】7. 整数反转

题目链接 文章目录 Python3官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯写法2写法3 C官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯ Python3 官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1…

数据库调优(Mysql)

1 索引 索引是帮助数据库高效查询的一种数据结构&#xff1a; 查询语句&#xff1a;select * from t where t.Col2 89; 不加索引进行数据库查询时&#xff0c;每次都需要将所有数据遍历一次&#xff0c;直到找到符合目标的数据。 加上索引之后&#xff0c;可以根据数据结构不同…

数据结构【DS】B树

m阶B树的核心特性: Q&#xff1a;根节点的子树数范围是多少&#xff1f;关键字数的范围是多少&#xff1f; A&#xff1a;根节点的子树数∈[2, m],关键字数∈[1, m-1]。 Q&#xff1a;其他结点的子树数范围是多少&#xff1f;关键字数范围是多少&#xff1f; Q&#xff1a;对任…