Nginx - 正向和反向代理概念
代理(Proxy)服务,通常也称为正向代理服务,可以使用图7.1示意,其中箭头的方向指示访问的方向。如果把局域网外Internet想象成一个巨大的资源库,那么资源就分布在Internet的各个站点上,局域网内的客户端要访问这个库里的资源必须统一通过代理服务器才能对各个站点进行访问。
图7.1 正向代理服务器示意图
局域网内的机器借助代理服务访问局域网外的网站,这主要是为了增强局域网内部网络的安全性,使得网外的威胁因素不容易影响到网内,这里代理服务器起到了一部分防火墙的功能。同时,利用代理服务器也可以对局域网对外网的访问进行必要的监控和管理。正向代理服务器不支持外部对内部网络的访问请求,即图7.2中的箭头方向不能反过来。
图7.2 反向代理服务器示意图
与正向代理服务相反,如果局域网向Internet提供资源,让Internet上的其他用户可以访问局域网内的资源,也可以设置使用一个代理服务器,它提供的服务就叫做反向代理(Reverse Proxy)服务。可以看到,反向代理服务与代理服务在功能逻辑上刚好是相反的。箭头方向代表访问的方向。
正向代理服务器与反向代理服务器的概念很简单,归纳起来就是,正向代理服务器用来让局域网客户机接入外网以访问外网资源,反向代理服务器用来让外网的客户端接入局域网中的站点以访问站点中的资源。理解这两个概念的关键是要明白我们当前的角色和目的是什么,在正向代理服务器中,我们的角色是客户端,目的是要访问外网的资源;在反向代理服务器中,我们的角色是站点,目的是把站点的资源发布出去让其他客户端能够访问。
我们知道了这两个概念,就可以学习如何让Nginx服务器来提供代理和反向代理服务了。
推荐阅读
-
配置 WSGI 服务器(Gunicorn)和 Nginx 反向代理服务器以部署 Flask 项目
-
SSH -L 代理和反向代理转发说明
-
Unity WebGL 使用 nginx 作为反向代理来处理跨域和一些跨域错误处理(添加反向代理配置后仍无法跨域)。
-
两种方法实现Nginx多层次反向代理并获取真实IP
-
如何配置LNMP和Nginx进行反向代理
-
如何处理Nginx反向代理后网页JS/CSS文件加载问题?
-
如何在Ubuntu上利用Msfvenom创建64位木马(反向和正向连接)并开启监听功能
-
如何用Nginx搭建反向代理服务器
-
如何用 Nginx 的 proxy_cookie_path 配置解决因反向代理导致的 cookie 失效,从而登录失效问题
-
真实案例:体验一次成功避开Nginx反向代理的靶场实战