Nginx正向代理和反向代理详解(图文全面总结)
关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen睿哥。
Nginx是大型架构的必备中间件,下面我就重点来详解Nginx正向代理和反向代理@mikechen
Nginx正向代理
正向代理充当了中间人的角色,与反向代理不同,正向代理的主要目的是代表客户端-》访问目标服务器。
如下图所示:
当客户端需要访问目标服务器时,它会将请求发送给配置的正向代理服务器,而不是直接发送给目标服务器。
比如:你要访问Google等网站,客户端(浏览器)无法直接访问这些网站。
这个时候正向代理就派上用场了,代理服务器帮助客户端绕过网络限制,间接访问目标网站。
Nginx反向代理
而反向代理:在服务对象、和隐藏目标上,是与正向代理“反着来”的。
如下图所示:
正向代理:代理的是客户端,代表客户端向外发起请求。
反向代理:代理的是服务端,代表服务端接收请求并处理。
客户端,并不知道实际提供服务的是哪个后端服务器,它只接触到代理服务器。
比如:Nginx反向代理流程,如下所示:
客户端───>Nginx(反向代理)───>后端服务器↑↓响应<───────────────响应
首先,客户端请求 Nginx。
客户端将请求发到 Nginx,目标地址是 Nginx 本身;
然后,Nginx 接收请求并匹配配置,根据 location 和 proxy_pass …等指令决定将请求转发到哪个后端服务器;
然后,Nginx 转发请求到后端服务器,Nginx 充当客户端角色向后端服务器发起请求;
最后,后端服务器处理并返回响应:Nginx 将后端响应原样或加工后返回给客户端。
Nginx 反向代理的核心在于:将客户端请求转发给后端服务器,并屏蔽后端服务细节,附带提供:安全控制和负载能力。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。