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

关注mikechen十余年BAT架构经验倾囊相授!

大家好,我是mikechen睿哥。


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

Nginx正向代理

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

如下图所示:

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

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

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


Nginx反向代理

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

如下图所示:


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

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

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

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

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

首先,客户端请求 Nginx。

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

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

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

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

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

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

相关文章

Nginx反向代理之proxy_redirect指令

proxy_redirect该指令是用来重置头信息中的"Location"和"Refresh"的值。语法:proxy_redirect redirect replace...

Home Assistant 外网访问指北(群晖反向代理)

今天又来水文了,上回提过,最近一直在折腾Home Assistant 的界面。Home Assistant 有个APP的定位功能,通过APP可以获取手机的定位,电量等信息,这些信息在界面上是可以显示的...

【Docker系列】最好用的反向代理 ——Nginx Proxy Manager

1. 介绍访问VPS或者网站服务器需要 域名+端口号,之所以日常使用不显示是因为端口80(http访问端口),端口443(https访问端口),会自动加上该默认端口。Nginx Proxy Manag...