一直都不太理解代理和反向代理的区别和使用场景,刚好看到了stackoverflow上的一个答案,全文翻译如下:

前一个答案是正确的,但是说的太简练了,我想加几个例子使得这两个概念更好理解一些。首先,代理的含义是某人或某物代表(扮演)另外一些人或者物。在计算机领域,我们常常使用的含义是某个服务(返回的结果)代表的是另一个计算机上的服务(返回的结果)。为了便于理解,我将仅限于讨论网络代理,然而,代理的思想却不仅仅限于网络。

正向(前向)代理

通常我们讨论的代理指的是正向代理。在一个正向代理请求事件中,请求的数据来自一个站点,该站点的数据可

以代表那个你想访问的站点的数据。代理事件,此处说的是正向代理事件,获取的数据是从另外一个站点获取的,该

站点返回的结果代表原(你想请求)站点返回的结果。

三台电脑的故事(第一部分)

举例说明,这里的三台电脑都能够连接到英特网。

X:代表你的电脑,或者说是互联网上的一个客户端

Y:代理站点,如proxy.example.org

Z:你想访问的站点,如:www.example.net

通常情况下,我们想要的是直接从X-->Z的连接,然而,在某些情景中,使用Y代表X访问Z更好,使得访问链变成

了X-->Y-->Z。那什么情况X会使用正向代理服务呢?下面列举了一些常用的正向代理服务:

由于以下原因X不能直接连接到Z:

(a) 管理员决定拒绝所有从X的网络发起的到Z的连接。

例如:

1).风暴蠕虫病毒通过诱骗人们访问familypostcards2008.com蔓延,所以系统管理员阻止访问该网站,防止            用户无意中感染自己。

2).大公司的员工花费了太多时间去访问facebook.com,所以管理员希望在工作时间阻止该链接。

3).本地的初中不允许连接到playboy.com网站

4).政府不能够控制媒体发布的新闻,所以他们禁止某些新闻的获取,比如,政府禁止以下网站

wikipedia.org、TOR 、 FreeNet.

(b)Z的管理员禁止了X

例如:

1).Z的管理员注意到了有从X发起的黑客攻击,所以管理员决定封掉X的ip地址或者网段。

2).Z是一个论坛站点,X正在乱发帖,Z禁止了X

  反向代理:

三台电脑的故事(第二部分)

举例说明,这里的三台电脑都能够连接到英特网。

X:代表你的电脑,或者说是互联网上的一个客户端

Y:代理站点,如proxy.example.org

Z:你想访问的站点,如:www.example.net

通常情况下,我们想要的是直接从X-->Z的连接然而,在某些情景下,Z的管理员更乐于限制或者不允许直接连

接到Z,并强制访问者先要连接到Y。由于前一句提到的原因,我们获取到数据需要通过Y代表X访问Z,变成了       X-- >Y-->Z。

那这和正向连接相比有什么区别呢?区别是,这次X并不知道他访问的是Z,因为X仅仅只能看到他连接到的

是Y。服务Z对于客户端(X)是不可见的,而正向代理中Y是对外可见的。反向代理要求在客户端(X)不进行任

何的配置

X仅仅知道,它是在和Y通信即X-->Y,但是实际上是Y转发所有的通信。使得通信又变成了X-->Y-->Z.

哪些情况Z下建立这些反向代理呢?

(a).Z想强制所有的网站流量先经过Y

1).Z是一个拥有数百万级用户的网站,但是,一个web服务并不能处理所有的流量,所以Z建立了许多个相同的

服务,并设置一个反向代理,使得用户访问Z服务的时候,访问到的是距离用户最近的那个Z服务。这就

是CND(内容分流)服务的一部分。

比如:

Apple Trailers 使用 Akamai,

Jquery.com 网站的javascript 文件正在使用的CloudFront CDN (sample)等

2)Z的管理员担心内容主机受到攻击,也不想直接公开暴露主服务

比如:搜索恶性排名 ”Canadian Pharmacy” 看起来有好几千个服务,实际上只有几个服务,因此,关于投诉            仅仅关掉公共服务,而不是主服务。(大概是这个意思,是在是翻译不通了)

(Owners of Spam brands such as "Canadian Pharmacy" appear to have thousands of servers, while            in reality having most websites hosted on far fewer servers. Additionally, abuse complaints            about the spam will only shut down the public servers, not the main server.)

由于上面的原因,Z选择了Y

列出一些参考词汇:

Content Delivery Network

Lists of CDNs

http://www.mytestbox.com/miscellaneous/content-delivery-networks-cdn-list/

http://blog.streamingmedia.com/the_business_of_online_vi/2008/01/updated-list-of.html

forward proxy software (server side)

cgi-proxy

phproxy (discontinued)

glype

Internet censorship wiki: List of Web Proxies

reverse proxy software for HTTP (server side)

apache mod_proxy (can also work as a forward proxy for HTTP)

squid

nginx (used on hulu.com, spam sites, etc.)

HAProxy

lighthttpd

perlbal (written for livejournal)

portfusion

pound

varnish cache (written by a freebsd kernel guru)

repose

reverse proxy software for TCP (server side)

balance

delegate

pen

portfusion

pure load balancer (web site defunct)

python director

参见:

Wikipedia - Content Delivery Network

Wikipedia - Category:Reverse_proxy

Wikipedia - Load Balancing

Wikipedia - Scalability

如何简单理解ngnix的反向代理相关推荐

  1. ngnix配置反向代理

    下图是我们要设计的服务器集群结构,所有的请求都经过Nginx,如果是静态资源的请求,则直接访问Ngnix的本地磁盘(或者NAS),其余的动态资源请求均由Nginx转发到后端服务器. OpenResty ...

  2. 一文简单理解反向代理和正向代理模型

    正向代理和反向代理 正向代理和反向代理 1.代理(Proxy) 2.反向代理和正向代理 参考 正向代理和反向代理 1.代理(Proxy) 引出代理之前,首先介绍C/S架构,也即是Client-Serv ...

  3. 简单配置nginx反向代理,实现跨域请求

    简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求. 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开n ...

  4. nginx的反向代理以及负载均衡模块的使用

    内容: 1.何为代理 2.nginx的反向代理模块以及使用 3.nginx的负载均衡模块以及使用 一.何为代理 代理,由字面意思可以理解为代为服务的是意思. 代理服务技术是一门很古老的技术,是在互联网 ...

  5. 浅析Nginx 正向代理与反向代理

    1.正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了.我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理 ...

  6. 分布式项目-Nginx安装(反向代理)

    可以根据parent_id来查询分类的列表 服务器上的图片是如果管理的? 1.如果是分布式环境引用会存在问题 2.图片的下载也会给服务器增加压力 3.如果存在高并发的话,就需要增加tomcat服务器, ...

  7. 「前端必看」这篇Nginx反向代理技巧,助你准时下班陪女神

    点击上方蓝字"大前端技术沙龙"关注我 您的关注意义重大 原创@大前端技术沙龙 最近同事小G总是闷闷不乐,让我感觉慌慌的,难道是我平时压榨小G了?我转念一想,不应该啊,工作量事先都评 ...

  8. 图解跨域请求、反向代理原理,对前端更友好的反向代理服务器 - Caddy

    关注 程序员成长指北,回复"1" 加入我们一起学习,天天进步 转载自:https://github.com/a1029563229/blogs/ 作者:晒兜斯 caddy 写在开头 ...

  9. 正向代理、反向代理和负载均衡

    要理解正向和反向代理, 简单说就是要整明白到底代理服务器代理了谁后者说代理服务器为谁服务? 别急,一点点往下看. 一.正向代理 1.啥是正向代理 就是一个在客户端和目标服务器之间的服务器(称为代理服务 ...

  10. 用.net core实现反向代理中间件

    最近在将一些项目的rest api迁移到.net core中,最开始是用的Nginx做反向代理,将已经完成切换的部分切入系统,如下图所示: 由于迁移过程中也在进行代码重构,需要经常比较频繁的测试,以保 ...

最新文章

  1. 从 webpack 到全面拥抱 Parcel #1 探索 Parcel
  2. 米的建站日记(2014年12月18日)
  3. android 在同一activity切换layout,在 Android Studio 添加一个activity并实现跳转
  4. js与android webview交互
  5. python3(十四)Python 异常处理
  6. C/C++编程笔记:经典游戏植物大战僵尸游戏辅助,源码送上
  7. 监听器应用【统计网站人数、自定义session扫描器、踢人小案例】
  8. Matlab Tricks(二十一)—— 软阈值函数的实现
  9. 一些python书=待买
  10. XMind 超强入门完全指南
  11. 在哪里买腾讯云服务器,在哪查看我的腾讯云服务器购买记录?
  12. 微信小程序-腾讯地图报错:鉴权失败,请传入正确的key
  13. truncate和delete的区别
  14. JAVA知识体系之JVM篇(新)
  15. Smart License
  16. Latex并排摆放两张表格
  17. 关于5G架构的理解与感想
  18. 助力企业电商双十一:华为云ECS,最专业的云服务专家
  19. OAuth 2.0 RFC 框架 中文
  20. 华为SmartAX MA5620配置当交换机使用

热门文章

  1. 如何避免B端产品失败(近万字解析)
  2. NFT平台Chair.finance获得Polygon Grant及生态支持
  3. Android 蓝牙协议栈消息(bta_sys_sendmsg)发送机制 ---- 全网唯一解析
  4. 基于蒙特卡洛方法的机器人工作空间MATLAB仿真
  5. opencv-python 图像基础处理(三)
  6. 公有云与私有云的概念解读与优势分析
  7. qq2018旧版本7.3.1下载_QQ旧版本2018下载
  8. 关于a:hover span和a span:hover的区别
  9. android多点触摸事件,Android多点触控
  10. 如何构建企业TPM管理体系?