关于正向代理与反向代理
2015-08-05 12:32
549 查看
代理的本质类似桥梁(注本文很多地方参考引用:http://z00w00.blog.51cto.com/515114/1031287,作为一个学习的过程记录学习)
但正向代理与反向代理还是有一定的区别,打个比方来说明一下正向和反向代理
正向代理: 我向-->张三借钱-->张三在向王五借钱 (我知道王明的存在,其实是我要张三帮我向王五借钱)
就像我司能访问外国网站,都是通过香港代理发出来去的 如访问https://www.facebook.com/(我们浏览器客户端有配置)
反向代理: 我向-->张三借钱-->张三私底下向王五借钱(我不知道王五的存在)
上面两幅图大致说明一下正向代理与反向代理是怎么回事!
下面来说一下为什么用到正向和反向代理
就像网络上很多加速服务器那样
用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
[align=left] [/align]
但正向代理与反向代理还是有一定的区别,打个比方来说明一下正向和反向代理
正向代理: 我向-->张三借钱-->张三在向王五借钱 (我知道王明的存在,其实是我要张三帮我向王五借钱)
就像我司能访问外国网站,都是通过香港代理发出来去的 如访问https://www.facebook.com/(我们浏览器客户端有配置)
反向代理: 我向-->张三借钱-->张三私底下向王五借钱(我不知道王五的存在)
上面两幅图大致说明一下正向代理与反向代理是怎么回事!
下面来说一下为什么用到正向和反向代理
正向代理
1:访问无法访问的服务器
当路由器节点或者网络故障出现问题的时候可以用正向代理方便解决问题2:加速服务器
当网络网络带宽不好的时候,有时候可以通过代理服务器的高速带宽进行访问,提高访问服务器的速度就像网络上很多加速服务器那样
3、Cache作用
Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。还如上图所示,如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据J,而不用千里迢迢的去服务器B下载数据了4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网
用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃
5、隐藏访问者的行踪
我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
反向代理
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端1:保护和隐藏原始资源服务器
2、 负载均衡
[align=left]当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。[/align]
[align=left]当然反向代理服务器像正向代理服务器一样拥有CACHE的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器B请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心[/align]
[align=left] [/align]
相关文章推荐
- 【我的技术我做主】nginx反向代理负载均衡群集实战
- nginx的配置及以反向代理方式实现动静分离、负载均衡
- Nginx反向代理实现负载均衡配置图解
- 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
- 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
- Squid SMP多核模式
- varnish / squid / nginx cache 有什么不同?
- SQUID与ATS (Apache Traffic Server) 压力测试
- squid之安装配置运行
- Apache 反向代理,带 ";jsessionid"解析
- 【Nginx-反向代理服务器】实践篇(三)之Tomcat+Nginx搭建集群
- 配置Nginx反向代理Tomcat
- Apache反向代理(mod-proxy方式)
- 【Nginx-反向代理服务器】基础知识(二)之多进程模式
- 【Nginx-反向代理服务器】基础知识(一)之事件处理机制
- nginx 安装与反向代理测试 under MAC
- nginx反向代理相关 负载均衡及优化
- nginx反向代理上网