作者:车小胖
链接:https://www.zhihu.com/question/24723688/answer/160252724
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

很久以前,老王去饭店吃饭,需要先到饭店,七荤八素点好菜,坐等饭菜上桌,然后大快朵颐,不亦乐乎。

有了第三方订餐外卖平台(代理),老王懒得动身前往饭店,老王打个电话或用APP,先选好某个饭店,再点好菜,外卖小哥会送上门来。

由于某个品牌的饭店口碑特别好,食客络绎不绝涌入,第三方订餐电话也不绝于耳,但是限于饭店接待能力有限,无法提供及时服务,很多食客等得不耐烦了,纷纷铩羽而归,饭店老总看着煮熟的鸭子飞走了,心疼不已。

痛定思痛,老总又成立了几个连锁饭店,形成一个集群,对外提供统一标准的菜品服务,电话订餐电话400-xxx-7777,当食客涌入饭店总台,总台将食客用大巴运到各个连锁店,这样食客既不需要排队,各连锁店都能高速运转起来,一举两得,老总乐开了花,并为此种运作模式起名为“反向代理”(Reverse Proxy)。

反向代理
在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。

反向代理的实现
1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上

2)服务器返回自己的服务到负载均衡设备

3)负载均衡将服务器的服务返回用户

以上的潜台词是:用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时,解析得到的IP其实是负载均衡的IP,而不是服务器的IP,这样有一个好处是,当新加入/移走服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。

谈完反向代理服务,再来谈谈终端用户常用的代理服务。

代理
1)用户希望代理服务器帮助自己,和要访问服务器通信,为了实现此目标,需要以下工作:

a) 用户IP报文的目的IP = 代理服务器IP
b) 用户报文端口号 = 代理服务器监听端口号
c) HTTP 消息里的URL要提供服务器的链接

2)代理服务器可以根据c)里的链接与服务器直接通信

3)服务器返回网页

4)代理服务器打包3)中的网页,返回用户。

代理服务器应用场景
场景一

如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网。

那有同学会有疑问,那代理服务器就没有安全漏洞吗?
相比千千万万的用户主机,代理服务器数量有限,修补安全漏洞更方便快捷。

场景二
在一个家庭局域网,家长觉得外部的世界是洪水猛兽,为了不让小盆友们学坏,决定不让小盆友们访问一些网站,可小盆友们有强烈的逆反心理,侬越是不让我看,我越是想看,于是小盆友们使用了代理服务器,这些代理服务器将禁止访问的网页打包好,然后再转交给小盆友,仅此而已。

当然关键的关键是代理服务器不在禁止名单当中!

反向代理为何叫反向代理?相关推荐

  1. 用nginx TCP反向代理作mail邮件代理

    用nginx TCP反向代理作mail邮件代理 用nginx TCP反向代理作mail邮件代理 1. 背景 2. Nginx安装(包括nginx_upstream_check_module) 3. N ...

  2. 使用ssh正向连接、反向连接、做socks代理的方法

    文章出处:http://dzmailbox.blog.163.com/blog/static/120534385201232642637847/ 最近才发现ssh有多么的强大! 在网上搜了半天,发现大 ...

  3. Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)

    文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...

  4. Nginx代理——正向、反向代理,动静分离和负载均衡

    文章目录 一.Nginx代理概述 (1)什么是正向代理和反向代理 -正向代理: -反向代理 -反向代理和正向代理的区别 (2)配置代理 -Nginx代理配置语法 -配置正向代理 -Nginx反向代理示 ...

  5. 负载均衡 反向代理为何叫反向代理?

    转  https://www.zhihu.com/question/24723688 与正向代理比起来,反向代理是什么东西反向了? 关注者 1217 被浏览 184352 41 个回答 刘志军 公众号 ...

  6. 【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

    大家好,欢迎来到停止重构的频道. 本期我们讨论网络代理. 在往期<大型网站 安全性>介绍过,出于网络安全的考虑,一般大型网站都需要做网络区域隔离,以防止攻击者直接操控服务器. 网站系统的应 ...

  7. nginx反向代理以及nginx反向代理三种方式

    nginx反向代理的三种模式分别是: 一.正向代理(Forward Proxy) 二.反向代理(reverse proxy) 三.透明代理 Nginx性能很高的,尤其是作为一个代理服务器,因为它用的是 ...

  8. squid 代理服务器--传统模式、代理模式、反向代理、acl控制、sarg日志(实验+理论详解)

    文章目录 一.squid 概述 二.传统dl搭建 2.1.实验环境 2.2.实验过程 2.2.1.部署squid 服务 2.2.2.配置传统模式 2.2.3.真机测试 三.透明dl搭建 3.1.实验环 ...

  9. 你需要知道的前端跨域知识(同源、正向代理、反向代理、前端代理、nignx反向代理)

    你需要知道的前端跨域知识(同源.正向代理.反向代理.前端代理.nignx反向代理) 一.什么是跨域? 当一个请求url的协议名.主机号.端口号三者任意一个或多个与当前url不同,即可称为跨域. 二.为 ...

  10. 架构师聊的四层代理和七层代理,都在聊什么?

    日常与大佬沟通或看文章,时不时总会遇到两个概念"四层代理负载均衡"和"七层代理负载均衡",那么,所谓的四层代理和七层代理分别指的是什么?又在什么场景下用到呢?这 ...

最新文章

  1. 深入理解Java Stream流水线,学到了!
  2. (LeetCode 203)Remove Linked List Elements
  3. COGNOS8培训之四(疑点解析)
  4. 大数据笔记10:大数据之Hadoop的MapReduce的原理
  5. python下载不了-python3下载不了
  6. git 代码强行提交
  7. python mysql connector update_Python(Mysql Connector)如何刷新curs上的结果
  8. 看博客学学Android(五)
  9. Spring远程调用技术1-RMI
  10. 混合类型数据格式化输入
  11. ui界面表单设计素材模板,实用可临摹
  12. html5-table布局
  13. 计算机模拟地球爆炸,地球爆炸模拟器
  14. 老服务器上安装windows server 2016
  15. 使用iperf测试峰值带宽
  16. 均值滤波与中值滤波(python实现)
  17. 天池大赛-心跳信号分类预测:探索性数据分析
  18. ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接
  19. NFC手机(小米2A刷机到Android4.4)HCE环境搭建
  20. java车辆管理系统开发源码_JSP写的车辆管理系统 - WEB源码|JSP源码/Java|源代码 - 源码中国...

热门文章

  1. Java对象数组的初始化
  2. gh ost mysql_MySQL DDL--gh-ost学习
  3. 微星 GL62M 7RD SSD+HDD双硬盘 安装双系统(win10+ubuntu 16.04)
  4. win10+laravel8+PHP+ElasticSearch+Kibana+高亮 接口搜索
  5. jquery 国际短信区号 鼠标移上实现下拉选择
  6. linux中日志服务器的搭建
  7. 1. 初识Jackson -- 世界上最好的JSON库
  8. 蓝牙MESH网关_相对于米家多模网关,其实我更爱的是光照传感器
  9. 线段树——区间合并(模板题)
  10. 使用Node.js手撸一个建静态Web服务器,内部CV指南