尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第四节:请求链路中代理的作用
【架构师从入门到进阶】第五章DNSCDN网关优化思路——第四节请求链路中代理的作用正向代理反向代理什么是反向代理反向代理如何实现四层反向代理七层反向代理什么叫上游本篇文章我们来学习代理。经过我们前面的内容比如说用户经过我们的DNS、CDN还有比如说多地址之类的一些方案请求到达了我们的系统之上。用户找到这个系统其实只是找到了这个系统的一个IP地址这个系统它不一定是对外提供业务服务的这么一个系统有可能它只是对外提供一个唯一IP多个请求到了这个系统之后还可以把请求分发给不同的小系统也是做了一次负载均衡。那么在这个系统做负载均衡的这个方法上我们会涉及到一个概念这个概念就叫做代理。在一般的公司中是通过反向代理这一步来实现的将对一个IP地址的请求分发到后面的多台机器上这个是反向代理。那么在我们学反向代理之前我们先来了解一下什么是正向代理。正向代理好多人不理解正向代理和反向代理的区别。什么是正向代理呢正向代理就是用户端设置代理服务器比如说所有的请求都由代理服务器发出无法判断代理了多少用户端这叫做正向代理画一个图大家就理解了比如说这有好多个客户端每个客户端里都配置了一个代理的网络转发。然后有一个代理服务器这个请求要去访问他直接请求代理服务器然后代理服务器代理他们去请求真正的系统。代理他们去请求真正的系统OK这个叫正向代理。正向代理关键点在于无法判断代理多少个用户端因为每个用户端自己去配置这个代理。我们要记住正向代理是用户端配置代理。反向代理正向的代理说完之后我们来看反向的代理。什么是反向代理那么反向代理是什么呢反向代理是服务端配置代理。所有的请求由服务端接收然后再由代理服务器分发到后面的服务器。我们来画一个图这是一个代理服务器代理服务器里配置了后面好多个服务器的地址所有的用户请求都来请求它但是代理服务器这边配置了后面好多服务器的地址然后代理服务器再将这些请求分发到后面的不同的机器上去这个就叫做反向代理好了。这样一来所有的请求呢都由这么一个服务器来接收无法判断这台代理服务器代理了多少的后端服务。我们刚才所说的这种反向代理它就可以把请求分发到不同的机器上从而减少每个节点的并发数。而这些节点在外界看来就是一个系统。就是我有好多个节点只不过前面架了一台代理服务器请求来的时候所有的请求都只访问这个服务器而实际上是请求的后面的多个服务器。对于用户来说只表现一个IP。反向代理如何实现我们来看一下反向代理是怎么实现。反向代理的实现手段有很多根据工作层级的不同分为两种。一般的我们知道网络有OSI的七层模型反向代理有四层反向代理或者七层的反向代理一般是从下往上数就是最高一层是第七层。最低一层物理层次低一层是数据链路层、网络层、传输层、会话层、表示层最高一层是应用层。每一层向相邻的上层提供一个确定的服务就是你只调我我实现某一些功能然后你做一些业务逻辑你再向上面提供一些确定的功能。可以看到一下如果说我们做四层反向代理应该怎么做呢四层反向代理在传输层我们就只知道传输层是通过IP端口进行传输的。越靠近用户层知道的信息越多越靠近下面知道的信息越少包括最后最下面物理层那知道的肯定就是一些物理的连接物理的介质。越往上面知道的信息越多那么第四层他知道的信息比如说IP和端口。如果我们要在这一层做代理我们就是通过IP和端口你给我一个IP和端口我们来把你进行转发。七层反向代理那如果说要做七层代理呢七层代理就可以用http那么在http中就会有URL是吧就会有各种各样的地址就会有请求的头请求的正文等等进行转发。也就是说四层做反向代理的话掌握的信息更少实现更简单但是效率更高因为它越靠近底层效率越高。用七层做反向代理的话可以做到更智能。七层我可以知道http的各种信息我可以解析cookie针对不同的cookie我们进行不同的转发我们还可以根据请求资源的类型进行转发比如说请求图片我给你转发到哪里请求视频我给你转发到哪里。这样的话功能更丰富但是效率就会更低一些。因为它越靠近上层它需要处理的这些逻辑就会越多它虽然知道的信息更多但是它的效率也会更低下。什么叫上游实现反向代理会有一个概念一个“上游”的概念什么叫上游比如说这是一个代理代理服务器我们要代理别人其实跟我们实际中的做生意的差不多比如说我代理的一个电脑品牌那比如说我代理联想那么联想就是我的上游别人要找我买电脑我就去找联想戴尔惠普我代理的这三家。别人找我买电脑我给你联想给你惠普给你戴尔那么我的上游就是它们三个它们三个叫上游。所以说在nginx比如说做反向代理的负载均衡服务器nginxnginx里面就会有一个“upstream”的一个概念。我们的nginx配置的时候肯定会配upstream这里面配置的就是上游的节点就是后方的这些信息。还有nginx里面有access_by_lua_file后面写了一个lua的.lua文件一个lua规则。你就可以根据lua的规则做反向代理。
RELATED

相关推荐

不用U盘也能给PS3装游戏:webMAN-MOD上手记

不用U盘也能给PS3装游戏:webMAN-MOD上手记

不用U盘也能给PS3装游戏:webMAN-MOD上手记 【免费下载链接】webMAN-MOD Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.) 项目地址: https://gitcode.com/gh_mirrors/we/webMAN-MOD 客厅那台PS3已经吃灰三年。重新…

📅 2026/10/10 6:22:42
计算机安全:构建坚不可摧的数字防线

计算机安全:构建坚不可摧的数字防线

目录 一、计算机安全基础概念 1. 定义与重要性 2. 安全三要素 二、常见计算机安全威胁 1. 恶意软件 2. 网络钓鱼 3. 分布式拒绝服务攻击(DDoS) 4. 高级持续性威胁(APT) 三、防御策略与实践 1. 强化访问控制 2. 定期更新…

📅 2026/10/10 6:22:42
老旧Mac如何再次流畅运行新macOS:OpenCore Legacy Patcher三大核心机制深度拆解

老旧Mac如何再次流畅运行新macOS:OpenCore Legacy Patcher三大核心机制深度拆解

老旧Mac如何再次流畅运行新macOS:OpenCore Legacy Patcher三大核心机制深度拆解 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 把一台 2008 年的…

📅 2026/10/10 7:18:26
MORE NEWS

更多资讯

📰

判定表驱动法实战:破解复杂业务规则的黑盒测试用例设计

判定表驱动法是我在实际项目里用得很频繁,也是软件测试面试里出现率极高的一种黑盒测试用例设计方法。很多测试同学一听到“判定表”就觉得是考试题,但实际上它是个非常实用的工具,专门用来对付那种“条件多、组合多、if-else嵌套到怀疑人生”…

📰

Cursor 实战指南:AI 编程助手的工程化落地路径

1. 为什么“PStack 分享:我怎么用 Cursor”不是又一篇工具广告“PStack 分享:我怎么用 Cursor”——这个标题乍看平平无奇,甚至有点像某次内部分享的随手记录。但如果你最近半年深度参与过实际编码工作,尤其是独立开发、小团队协作…

📰

AnyPS5:开源命令行工具集,解锁PS5开发工作流的通用能力

带“Any”前缀的工具,天然就带着一股“通吃”的气质——不挑版本、不挑设备、不挑使用场景。AnyPS5 这个项目,就是把这种气质带到了第9代主机生态里:官方工具链只对特定开发者开放,个人开发者和小团队拿不到完整资源管线&#xff…

📰

Emacs中找回Ctrl+C/V:cua-mode配置与实战指南

第一次打开那款以可扩展著称的老牌编辑器时,我下意识按下一个快捷键,然后愣住了。我要复制的代码还在屏幕上,但编辑器把那次按下当成了取消命令——没错,就是 CtrlC。那一刻我第一次认真想一个问题:为什么全世界的图形…

📰

读懂GitHub热榜日榜:从star增量到开源项目选型的完整方法论

GitHub热榜项目,特别是日榜这种颗粒度,我基本当它是一份每天更新的行业风向标。2026年10月5日这天的榜单,刷新时间是周二上午,照例是周末PR合并潮之后的第一轮集中爆发。很多项目在周五还只有零星讨论,经过周末发酵、周…

📰

Angular中null导致length读取报错的原因与解决方案

作为一个常年跟前端控制台把玩的人,看到标题里这个报错我第一反应就是老熟人。UnitConsumptionIndexComponent.html:50 ERROR TypeError: Cannot read property length of null,如果你也遇到过类似的报错,那大概率是在Angular项目里&#xff…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬