• 前向代理和反向代理


    转自:https://www.cnblogs.com/daoluanxiaozi/p/about-proxy.html

    第一次接触代理是在大二计算机网络课堂中,通由代理服务器可以让网络访问更具伸缩性,可以拒绝访问某些网站和协助访问被和谐的网站。最近无意中接触了反向代理,有对比正好有机会可以搞清楚前向代理和反向代理着两个概念。

    前向代理 一般提到的是前向代理。表面上客户端 C 可以直接访问服务器 S,但实际上 C 在访问 S 的时候经过了中间的另一个中间的服务器 M,M就是代理服务器。为什么说是前向代理?因为前向代理是面向客户端的,而不是服务器。M 接收了 C 的请求后,(有选择的)对请求进行简化或者其他处理,再向目标服务器请求数据。

    C-------------M-------------S

    前向代理

    对请求进行简化或者其他处理意味着可以无视某些请求,譬如:学校发现 abc.com 站点上的内容很黄很暴力,为了在校学生的身心健康,在学校的代理服务器上对 abc.com 做限制,于是学生就不能访问 abc.com 站点了,也可以说 abc.com 被和谐了。除此之外,前向代理还有:

    1. 访问被和谐的站点,譬如FQ等
    2. 隐藏客户端,真正与服务器打交道的是前向代理
    3. 提高访问速度,前向代理的缓存功能

    关于前向代理,我们不得不熟悉闻名遐迩的 goagent 了。goagent 将 Google App Engine GAE 作为代理服务器中转,从而突破围墙。

    反向代理 与前向代理相反,反向代理面向服务器,对于客户端 C 访问服务器 S 而言,好像 A 真的再访问 S 一样,其实真正的服务器是在 S 后面的 M.

    C-------------S-------------M

    反向代理
    反向代理

    所以,这幅图已经告诉我们反向代理能做些什么:

    1. 负载均衡,真正处理业务逻辑的是再往后的 web 服务器
    2. 加速访问静态内容,和前向代理一样有缓存的功能
    3. 隐藏真实服务器,客户端不知道真正后台服务器是怎么样的....

    在这里要提一下 CDN 内容分发网络,反向代理可以是 CDN 的一种实现原理。为此,找到一幅好图:

    从图中可以看到 www.yourdomain.com 设置有三个节点,USA、EU、APAC。这三个节点可以缓存一些静态内容,从而减轻后端服务器压力。当然,这只是原理,其中还很多很牛犇的技术在里面。欢迎补充。

    捣乱 2013-08-01

    http://daoluan.net/blog

    更多请访问:http://daoluan.net
  • 相关阅读:
    再谈iOS 7的手势滑动返回功能
    CGContextRef用法
    UIView的layoutSubviews和drawRect方法何时调用
    layoutSubviews何时调用的问题
    iOS应用开发最佳实践:编写高质量的Objective-C代码
    WWDC2014之App Extensions学习笔记
    定制iOS 7中的导航栏和状态栏
    从客户端中检测到有潜在危险的 Request.Form 值
    async and await 简单的入门
    C# Dictionary学习
  • 原文地址:https://www.cnblogs.com/sharpest/p/5945764.html
Copyright © 2020-2023  润新知