Nginx-正向与反向代理

正向代理

正向代理 是一个位于客户端和目标服务器(origin server)之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(目标服务器),然后代理向目标服务器转交请求并将获得的内容返回给客户端。正向代理的特点是用于提供内部网络对外部网络的访问能力。
这里写图片描述
如上图,客户端和目标服务器之间不可以实现直接连接,而是通过正向代理服务器来作为中介,传递客户端的请求和目标服务器返回的数据。

正向代理用途

(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理

反向代理 也是一个位于客户端和目标服务器之间的服务器。和正向代理服务器的区别在于,反向代理服务器可以代理外部网络上的主机,访问内部网络,这种代理服务的方式称为反向代理服务器。反向代理的特点是用于外部网络访问内部网络时使用。
这里写图片描述

反向代理用途

1、作内容服务器的替身,保护数据安全
这里写图片描述
如上图所示,我们可以在防火墙外部设置一个代理服务器作为内部服务器的替身。
当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器(参见图 2)。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向 URL。
这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。

2、实现负载均衡,通过反向代理服务器优化网站的负载
这里写图片描述
如上图所示,网站内部有多台服务器来共同支撑,这样不仅可以加快企业网站的访问速度,还可以避免突发情况造成的灾难,但是会由于服务器本身原因或者某些外界因素会造成各个服务器的访问速度不一,这时候我们就需要配置http服务器的负载均衡来将客户端请求转发到相应服务器上,降低资源的浪费。反向代理服务器是通过负载均衡策略,来决定具体由哪台内部服务器来提供服务,负载均衡策略分为三种:轮询,加权,hash,下篇博客会详细介绍。

结语

最后借用一张图来说明正向代理和反向代理的区别:
这里写图片描述
可以说,代理服务器在两种代理代理中都是作为中介者,代为收发请求和相应。但是在正向代理中,客户端和代理服务器同属一个LAN,对目标服务器透明;反向代理中,代理服务器和目标服务器同属一个LAN,对客户端透明。

猜你喜欢

转载自blog.csdn.net/ldb987/article/details/81364877