Nginx作为代理服务之正反代理
Nginx作为代理服务之正反代理
首先什么是代理,就跟明星的经纪人类似,比如作为苍老师经纪人的我,如果你们需要和苍老师拍小电影,可以跟我这个经纪人来商量比如价格啊,时间等相关信息,那么我就作为一个代理的角色,帮助各位和苍老师之间的交流等。
下面,言归正传,将介绍什么是正向代理和反向代理
正向代理
正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个
请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才
能使用正向代理。
我认为正向代理有个重点的地方:必须指定目标,也就是必须指定要访问的目标,比如,我们在国内需要访问国外的网站,由于
政策限制,不能直接访问,但是我们可以通过国外的代理服务器,我们客户端访问国外的代理服务器,让代理服务器帮我们访问那个
指定的网站,然后通过代理服务器将信息返回客户端即可。而我们需要做的就是连上代理服务器,输入我们要访问的网址即可。
反向代理
反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空
间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这
些内容原本就是它自己的一样。
举个例子,比如有个服务器限制了端口,只能接受80端口,但是如果我们要访问8080端口,通过客户端是无法做到的,就是使用
正向代理也不行,说了正向代理需要知道指定目标,这里也限制了8080不能直接访问,那么只能通过nginx反响代理,通过代理服务器
来实现调用。而对于客户端来说并不知道服务器只能访问80端口,客户端不知道服务端的任何操作。
两者区别
从用途 上来讲:
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络
使用率。反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平
衡,或为后端较慢的服务器提供缓冲服务。
另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间
下。
从安全性 来讲:
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服
务。反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。