Nginx 反向代理

代理与反向代理

假设网络上有三台机器:

X:你的电脑

Y:代理服务器

Z:网站

通常,你会直接访问需要的网络资源,此时路径是由你的电脑直接到网站 X->Z。

代理(Proxy)

但某些情况下,X 并不能直接访问到 Z。原因可能是两方面的,

X 所在的网络将 Z 进行了屏蔽封锁,比如公司内网禁用一些娱乐性质的网站,防止员工工作时间娱乐。

Z 将 X 进行了屏蔽。比如 Z 发现来自 X 的请求异常,怀疑是恶意攻击,所以将 X 的 IP 封掉。

此时 Y 在中间可充当 X 的代理,将 X 的请求转发到 Z,拿到内容后再返回给 X。此时路径为 X->Y->Z。

也就是说,代理是 X 端主动配置和发起的,X 明确知道 Y 并不是返回内容的服务器。

反向代理 (Reverse Proxy)

某些情况下,Z 不想让 X 直接访问,所以配置一个 Y 在前面充当代理提供服务。

此时,作为用户访问的是 Y,并不知道 Z 才是真正提供服务的机器,用户代理了,相比前面,所以这里是 反向代理。

反向代理下,Z 在后台对外不公开只内网可访问,而作为反向代理的 Y 对外公开可通过公网访问。

反向代理的场景:

比如 Z 是个大型网站,请求量巨大,单台机器是无法满足所有请求的,所以同样的网站内容部署在了多台机器上。然后配置一台反向代理的机器,将请求再就近转发到某台机器。比如 CDN。

负载均衡。将请求平均分配到各机器,以至于不会让某些机器过载,同时将挂掉的机器其请求转发到还在正常运行的机器上。

Nginx 中反向代理的配置 请求转发

通过 可将请求直接转发。

location /some/path/ { proxy_pass ; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzggwj.html