代理(Proxy)服务,通常也称为正向代理服务,可以使用图7.1示意,其中箭头的方向指示访问的方向。如果把局域网外Internet想象成一个巨大的资源库,那么资源就分布在Internet的各个站点上,局域网内的客户端要访问这个库里的资源必须统一通过代理服务器才能对各个站点进行访问。
图7.1 正向代理服务器示意图
局域网内的机器借助代理服务访问局域网外的网站,这主要是为了增强局域网内部网络的安全性,使得网外的威胁因素不容易影响到网内,这里代理服务器起到了一部分防火墙的功能。同时,利用代理服务器也可以对局域网对外网的访问进行必要的监控和管理。正向代理服务器不支持外部对内部网络的访问请求,即图7.2中的箭头方向不能反过来。
图7.2 反向代理服务器示意图
与正向代理服务相反,如果局域网向Internet提供资源,让Internet上的其他用户可以访问局域网内的资源,也可以设置使用一个代理服务器,它提供的服务就叫做反向代理(Reverse Proxy)服务。可以看到,反向代理服务与代理服务在功能逻辑上刚好是相反的。箭头方向代表访问的方向。
正向代理服务器与反向代理服务器的概念很简单,归纳起来就是,正向代理服务器用来让局域网客户机接入外网以访问外网资源,反向代理服务器用来让外网的客户端接入局域网中的站点以访问站点中的资源。理解这两个概念的关键是要明白我们当前的角色和目的是什么,在正向代理服务器中,我们的角色是客户端,目的是要访问外网的资源;在反向代理服务器中,我们的角色是站点,目的是把站点的资源发布出去让其他客户端能够访问。
我们知道了这两个概念,就可以学习如何让Nginx服务器来提供代理和反向代理服务了。