分布式系统反向代理设计与正向代理

news/2024/5/15 3:50:54/文章来源:https://blog.csdn.net/baidu_32452525/article/details/130325240

反向代理与正向代理分析

代理服务器:位于发起请求的客户端与原始服务器端之间的一台跳板服务器,代理服务器分为正向代理服务器和反向代理服务器

在这里插入图片描述

  • 正向代理 :代理客户端,隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端发出的请求都被代理服务器代替,正向代理最典型的应用就是代理浏览器访问,实现资源的访问控制,缓存等功能。正向代理部署在用户端。

  • 反向代理 : 帮客户端把请求转发到真实的服务器, 用于解决单机处理能力不足问题,多机冗余部署,代理隐藏目标IP。反响代理部署在服务端

反向代理在分布式架构中的作用

  • 承载海量连接: 承担更多的用户高并发连接
  • 保证内网的安全: 任何来自外部用户的请求都必须先经过代理服务器进行安全校验
  • 负载均衡: 充当负载均衡服务器均衡地分发请求,平衡集群中各个Web服务器的负载压力
  • 缓存加速Web请求: 缓存真实Web服务器上的静态资源,减轻真实Web服务器的负载压力
  • 隐藏目标服务器: 用户实际看到的只是反向代理,后端真是服务被隐藏

反向代理

LVS

Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术

LVS反向代理机制

  • 四层负载:通过报文中的目标地址和端口
  • 七层负载:通过报文中的真正有意义的应用层内容

LVS后端架构组成

在这里插入图片描述

  • Load Balancer:Director Server 最前端的负载均衡层, 也就是
  • Server Array:RealServer 服务器集群层,负责具体业务
  • Shared Storage:数据共享存储层

HAProxy

  • HAProxy是一个使用C语言编写的开源产品,提供高可用性负载均衡,支持基于TCP和HTTP的应用程序代理
  • HAProxy用法详解 全网最详细中文文档

Nginx

Nginx 是一个强大的 Web 服务器软件,用于处理高并发的 HTTP 请求和作为反向代理服务器做负载均衡。

具有高性能、轻量级、内存消耗少,强大的负载均衡能力等优势。

Nginx反向代理机制

  • 四层负载:通过报文中的目标地址和端口
  • 七层负载:通过报文中的真正有意义的应用层内容\

Nginx整体架构

在这里插入图片描述

  • 特点: 模块化、事件驱动、异步、 单线程、 非阻塞
  • Master进程:监视工作进程的状态、当工作进程死掉后启动新进程、处理信号和通过进程通信的管道机制,Master指令下发到Worker
  • Worker进程:处理客户端请求,从主进程处获得信号做相应的事情
  • Cache loader进程:加载缓存索引文件信息
  • Cache manager进程:管理磁盘的缓存大小,超过预定值大小后最少使用数据将被删除
  • Master-Worker 模式优点:各Worker进程之间互相不会影响、独立进程,不需要加锁,所以省掉了锁带来的开销提升稳定性,降低系统风险
  • Nginx 惊群问题

参考

  • Nginx 从入门到实践

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

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

相关文章

数据库系统概论--第五章课后习题

1.什么是数据库的完整性? 答:数据库的完整性是指数据的正确性和相容性。 2. 数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存…

TortoiseSVN使用-授权访问

文章目录 3.4.6 授权访问 3.4.6 授权访问 总结: 如果是匿名访问(就是不用输入用户名密码的访问方式),请只开启anon-access write如果授权访问,请先设置anon-access none,然后打开3个:auth-a…

JDBC操作数据库

数据库介绍 数据库是一种存储结构,允许使用各种格式输入、处理和检索数据,不必再每次需要数据时重新输入。当前比较流行的数据库主要有MySQL、Oracle、SQL Server等 使用JDBC操作数据库,SQL语句是比不可少的,SQL是一种结构化查询…

自媒体必备素材库,免费、商用,赶紧马住~

自媒体经常需要用到各类素材,本期就给大家安利6个自媒体必备的素材网站,免费、付费、商用都有,建议收藏起来~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素…

集群聊天服务器项目(三)——负载均衡模块与跨服务器聊天

负载均衡模块 为什么要加入负载均衡模块 原因是:单台服务器并发量最多两三万,不够大。 负载均衡器 Nginx的用处或意义**(面试题)** 把client请求按负载算法分发到具体业务服务器Chatserver能和ChatServer保持心跳机制&#xf…

深入浅出JS定时器:从setTimeout到setInterval

前言 当谈到 JavaScript 编程语言最基本的概念时,定时器就是一个必须掌握的知识点。在编写网站时,你经常会遇到需要在一定时间间隔内执行一些代码的情况。这时候,JavaScript 定时器就可以派上用场了。 什么是定时器? JS 定时器是…

@Configuration 和 @Component 注解的区别

一句话概括就是 Configuration 中所有带 Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。 理解:调用Configuration类中的Bean注解的方法,返回的是同一个示例; 而调用Component类中的Bean注解的方法&#x…

JavaEE-一文了解IP协议与IP地址

目录 IP协议什么是IP地址IP地址的组成动态分配IPNAT机制(网络地址转换) IP协议 IP协议是不可靠、无连接的 不可靠:表示IP协议不能保证IP数据报能成功的到达目的地。IP仅提供传输服务,任何可靠性的要求都必须由上层来提供(如TCP)。如果传输过…

【Cpp】手撕搜索二叉树(KV模型)

文章目录 二叉搜索树的应用搜索二叉树(KV模型)代码:二叉搜索树的性能分析 二叉搜索树的应用 K模型:K模型即只有key作为关键码,结构中只需要存储Key即可,关键码即为需要搜索到的值。 比如:给一个单词word,判断该单词是…

QGIS--开发OpenSCENARIO动态场景(三)--制作动态场景

一、添加scenario&#xff0c;carla的环境变量 export CARLA_ROOT/path/to/your/carla/installation export SCENARIO_RUNNER_ROOT/path/to/your/scenario/runner/installation export PYTHONPATH$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla/dist/carla-<VERSION>.egg ex…

Java核心技术 卷1-总结-12

Java核心技术 卷1-总结-12 具体的集合链表数组列表 具体的集合 下表中除了以 Map结尾的类之外&#xff0c; 其他类都实现了 Collection 接口&#xff0c;而以 Map结尾的类实现了 Map 接口。 集合类型描述ArrayList一种可以动态增长和缩减的索引序列LinkedList一种可以在任何位…

MySql知识

架构分层 模块详解 Connector&#xff1a;支持各种语言和SQL的交互&#xff0c;如PHP&#xff0c;Python&#xff0c;JAVA JDBC Management Services & Utilities&#xff1a;系统管理和控制工具&#xff0c;包括备份恢复&#xff0c;MySQL复制&#xff0c;集群等 Connec…

机器学习算法 随机森林

文章目录 一、概述1.1 集成学习1.2 决策树1.3 随机森林 二、Sklearn中的随机森林2.1 分类树API2.2 参数 2.2 回归树API2.2.1 重要参数 2.3 随机森林调参 三、总结 一、概述 1.1 集成学习 多个模型集成成为的模型叫做集成评估器&#xff08;ensemble estimator&#xff09;&am…

一文带你入门MySQL

目录 一、MySQL登陆1.配置MySQL环境变量2.MySQL登陆命令 二、MySQL基础知识1.数据类型&#xff08;1&#xff09;整型&#xff08;2&#xff09;浮点型&#xff08;3&#xff09;日期型&#xff08;4&#xff09;字符型&#xff08;5&#xff09;数据类型小结 2.MySQL的约束【重…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论&#xff0c;包括人类需求的五级模型&#xff0c;通常被描绘成金字塔内的等级。 从层次结构的底部向上&#xff0c;需求分别为&#xff1a;生理&#xff08;食物和衣服&#xff09;&#xff0c;安全&#xff08;工作保障&#xff09;…

【UE】保存游戏的demo

效果 注意左上角的打印信息&#xff0c;每当我按下k键&#xff0c;值就加1。当我关闭后重进游戏&#xff0c;按下k键&#xff0c;值是从上次退出游戏的值开始累加的。 步骤 1.新建蓝图&#xff0c;父类为“SaveGame” 命名为“MySaveGame”并打开 新建一个整型变量&#xff0c…

CentOS7(二)Go、Java、Python、Node开发环境配置

文章目录 Go环境配置Java环境配置Python环境配置Node 环境配置 CentOS7&#xff08;一&#xff09;安装和基础配置 CentOS7&#xff08;二&#xff09;Go、Java、Python、Node开发环境配置 根据前文&#xff0c;我们将所有的自定义环境变量&#xff0c;都收拢在了 /root/.bash_…

可视化Echarts 柱状图、饼状图、折线图的设置

柱状图 饼状图 折线图 柱状图 基本的柱状图设置 <template> <div ref"ec" id"ec"></div> </template><script> import * as echarts from "echarts"; //引用echartsexport default {mounted(){let mc ech…

【ONE·C++ || 模板进阶】

总言 主要介绍模板相关内容&#xff1a;非类型模板参数、类模板特化、模板的分离编译。 文章目录 总言1、非类型模板参数1.1、主要介绍1.2、std::array 简要说明 2、模板的特化2.1、基本介绍2.2、函数模板特化2.3、类模板特化2.3.1、基本说明2.3.2、用途举例2.3.3、分类&#…

反垃圾邮件产品技术要求和测试评价方法

声明 本文是学习信息安全技术 反垃圾邮件产品技术要求和测试评价方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 反垃圾邮件产品等级划分 根据产品功能要求和安全保证要求的不同&#xff0c;以及反垃圾邮件产品适用应用环境的不同&#xff0c;将…