前言
在学习ngnix时,发现正向代理与反向代理不太好理解,而且都是听过但是听不懂的概念。
一、什么是正向代理?
百度百科的解释
正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
【自己的理解】:我们要从自己的电脑上,请求到公司内网中,需要工具,这里就是正向代理,把自己的请求发到代理服务器,例如www.a.com统一代理客户端发来的请求,并隐藏了客户端的ip。
二、什么是反向代理?
百度百科的解释
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
【自己的理解】:ngnix其实就是做了反向代理这件事,比如我请求baidu,但是百度背后不止一台服务器,我的请求具体到哪一台服务器,并不需要我去处理,我只需要请求www.baidu.com就行,既:ngnix隐藏了具体服务器的ip。
三、正向代理和反向代理的区别【简单理解】
1. 正向代理是为了隐藏客户端信息例如ip,反向代理是为了隐藏服务器信息,例如ip。
2. 正向代理是有感知的(就是说你需要用vpn你需要自己去配置),反向代理是无感知的(只需要输入www.baidu.com就可以访问到百度不同服务器上的资源,配置过程不是用户去做的)。