首页 > 其他分享 >负载均衡和反向代理的区别

负载均衡和反向代理的区别

时间:2023-05-06 15:49:03浏览次数:31  
标签:负载 RS 报文 Client 反向 均衡 IP地址


Client 和负载均衡设备之间的报文交互过程

RS和负载均衡设备之间的报文交互过程

结果分析:
TCP握手过程:同反向代理模式交互过程
HTTP报文交互过程:
       Client向负载均衡设备的VIP地址172.16.75.84以源IP 10.8.21.40发送HTTP请求,当负载均衡设备收到报文后,与优选后的RS进行TCP三次握手,过程同反向代理模式,然后将收到的HTTP报文,不改变报文的源IP地址和源/目的端口号,只修改目的IP修改为优选后的RS地址172.16.75.82;当RS收到源来自IP 10.8.21.40的报文后,回复报文给IP地址10.8.21.40,此时要注意,必须在RS上配置回复报文经过负载均衡设备,负载均衡设备会将源IP修改为VIP地址172.16.75.84,然后转发给Client,否则Client将会收到源IP为172.16.75.82的HTTP报文,服务器访问失败。

五、 三角模式
       在三角模式下,当客户端发送请求到负载设备上时,负载均衡设备会计算出最优RS,然后直接根据MAC地址将报文转发给RS,在RS上配置报文的源IP为VIP地址(一般配置在loopback口上),因此在这种情况下,RS会直接将报文发送给Client,即使回复报文经过负载均衡设备,此设备不做任何处理。由于报文在整个过程中传输途径类似于三角形,因此称之为三角模式。

报文解析结果

分别在Client端和RS端抓包,内容如下:

Client和负载均衡设备之间的报文交互过程

RS 和负载均衡设备之间的报文交互过程

结果分析
TCP握手过程:
      由于采用了4层SLB,所以在TCP握手过程中与上述的7层SLB有些不同,当Client和RS完成三次握手之后,此时负载均衡设备会直接选择RS,然后跟RS建立TCP三次握手;在三角模式环境中,由于RS的Loopback口和负载均衡设备上都存在着VIP地址172.16.75.84,当负载均衡设备经过负载均衡算法选择出对应的RS后,会根据实际配置的RS的IP地址对应的mac地址,将报文以目的mac为RS,目的IP为VIP的方式建立TCP连接。

HTTP报文交互过程:

       首先Client向负载均衡设备的VIP发送HTTP请求,源为10.8.21.40,当负载均衡设备收到报文后,将报文直接转发给RS,当RS收到源IP为10.8.21.40,目的IP为本地Loopback口IP地址172.16.75.84的报文后,直接将报文回复给10.8.21.40,同样源为IP地址172.16.75.84,由此访问服务器成功。
在三角模式中,由于回复报文负载均衡设备不做任何处理,所以非常适合于RS到Client方向流量较大或者连接数目较多的组网环境。
采用三角模式时,必须注意RS有路由可以到达Client,并且在RS的Loopback接口上必须有负载均衡设备的VIP地址,否则即使RS设备收到Client的请求报文也会直接丢弃报文,不作回应。

六、总结
由于反向代理模式中在RS侧只能收到源为负载均衡设备IP的报文,因此可以使用防火墙增加安全性,只允许源IP为负载均衡设备的IP地址的报文通过,同时增加X-Forwarded-For字段也可以让RS只允许有此字段的报文进行访问,因此安全性相对较高。
>

 

86660633fd06471a00.png

标签:负载,RS,报文,Client,反向,均衡,IP地址
From: https://www.cnblogs.com/llfei/p/17377558.html

相关文章

  • 负载均衡的几种常用方案
    RoundRobin轮询调度随机方式哈希方式一致性哈希根据键的范围来负载根据键对服务器结点数取模来负载;纯动态结点负载均衡不用主动负载均衡;相关开源工具负载均衡的几种常用方案总结下负载均衡的常用方案及适用场景;RoundRobin轮询调度以轮询的方式依次请求调度不同的服务器; 实现......
  • Jboss4集群配置之二:Jboss集群配置实例与负载均衡器配置
    1.前言 2.集群准备知识 3.Jboss集群配置实例概述4.Jboss集群负载均衡器mod_jk配置3.Jboss集群配置实例概述下文中,RubySun 将以实例来叙述Jboss集群配置。该实例包含3个Jboss节点。各节点被动接收负载均衡器转发的请求。各节点间没有横向的联系。4. Jboss集群负载均衡器配置步......
  • xxlJob端口号及故障转移设置,解决负载均衡调度任务执行
    xxlJob端口号及故障转移设置,解决负载均衡调度任务执行my.xxljob.executorPort=1162my.xxljob.executorAppName=myService-job-executor-fat1##xxlJobadmin后台服务地址my.xxljob.adminAddresses=http://xx.xx.xx.xx:1048my.xxljob.executorAppName=xxl-job-execut......
  • 《安富莱嵌入式周报》第311期:300V可调节全隔离USB PD电源,开源交流负载分析仪,CANFD Tra
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Hh4y1H7dR1、运行速度1Hz木头材料晶体管https://liu.se/en/news-item/varldens-forsta-tratransistor研究人员设计并测试了第......
  • nginx 发布网站通过域名访问,后端接口反向代理
    1、申请域名证书,申请好之后,下载Nginx域名部署包(包里一般会含义*.key和*.pem文件)2、把 *.key和*.pem文件放置到 Nginx程序 conf文件夹下,与nginx.conf文件路径保存一致3、修改Nginx的配置文件 server{    listen   443ssl;    #你的域......
  • RocketMQ消费者是如何负载均衡的
    摘要:RocketMQ支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。本文分享自华为云社区《一文讲透RocketMQ消费者是如何负载均衡的》,作者:勇哥java实战分享。RocketMQ支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。集群消费:同一Topic下的一......
  • RocketMQ消费者是如何负载均衡的
    摘要:RocketMQ支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。本文分享自华为云社区《一文讲透RocketMQ消费者是如何负载均衡的》,作者:勇哥java实战分享。RocketMQ支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。集群消费:同一Topic下的一条消......
  • nginx的反向代理缓存
    #proxy_cache_path设置缓存保存的目录#keys_zone设置共享内存以及占用的空间大小#max_size设置缓存大小#inactive超过此时间,则缓存自动清理#use_temp_path关闭临时目录proxy_cache_path/usr/local/nginx/upstream_cachekeys_zone=myca......
  • 基于反向策略的麻雀搜索算法 -附代码
    基于反向学习策略的麻雀搜索算法文章目录基于反向学习策略的麻雀搜索算法1.反向学习策略2.基于反向学习策略的麻雀搜索算法3.算法结果:4.Matlab代码5.python代码1.反向学习策略反向学习策略是由Tizhoosh于2005年提出的,目前已在GA、DE、ACO和BBO等群体智能优化算法中得到了......
  • 微服务 - Nginx网关 · 进程机制 · 限流熔断 · 性能优化 · 动态负载 · 高可用
    系列目录:微服务-概念·应用·通讯·授权·跨域·限流微服务-集群化·服务注册·健康检测·服务发现·负载均衡微服务-Redis缓存·数据结构·持久化·分布式·高并发本文的前提需要了解一些基础的Linux知识。以下围绕Nginx1.23的网关应......