Nginx正向代理和反向代理详解(图文全面总结)

Nginx是大型架构的必备中间件,下面我就重点来详解Nginx正向代理和反向代理@mikechen

Nginx正向代理

正向代理充当了中间人的角色,与反向代理不同,正向代理的主要目的是代表客户端-》访问目标服务器。

如下图所示:

Nginx正向代理和反向代理详解(图文全面总结)

当客户端需要访问目标服务器时,它会将请求发送给配置的正向代理服务器,而不是直接发送给目标服务器。

比如:你要访问Google等网站,客户端(浏览器)无法直接访问这些网站。

这个时候正向代理就派上用场了,代理服务器帮助客户端绕过网络限制,间接访问目标网站。

 

Nginx反向代理

而反向代理:在服务对象、和隐藏目标上,是与正向代理“反着来”的。

如下图所示:

Nginx正向代理和反向代理详解(图文全面总结)

 

正向代理:代理的是客户端,代表客户端向外发起请求。

反向代理:代理的是服务端,代表服务端接收请求并处理。

客户端,并不知道实际提供服务的是哪个后端服务器,它只接触到代理服务器。

比如:Nginx反向代理流程,如下所示:

Nginx正向代理和反向代理详解(图文全面总结)

客户端 ───> Nginx(反向代理) ───> 后端服务器
           ↑                      ↓
         响应 <─────────────── 响应

首先,客户端请求 Nginx。

客户端将请求发到 Nginx,目标地址是 Nginx 本身;

然后,Nginx 接收请求并匹配配置,根据 locationproxy_pass …等指令决定将请求转发到哪个后端服务器;

然后,Nginx 转发请求到后端服务器,Nginx 充当客户端角色向后端服务器发起请求;

最后,后端服务器处理并返回响应:Nginx 将后端响应原样或加工后返回给客户端。

Nginx 反向代理的核心在于:将客户端请求转发给后端服务器,并屏蔽后端服务细节,附带提供:安全控制和负载能力。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧