1. 首页

如何实现nginx正向代理与反向代理

正向代理

在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。代理对象是客户端,不知道服务端是谁。

常见的正向代理应用场景如vpn,正向代理,是在用户端的。比如需要访问某些国外网站,国内访问速度太慢,这个我们可能需要vpn。

并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。

浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。

image

反向代理

客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后在返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器IP地址。代理对象是服务端,不知道客户端是谁。

反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。

image

Nginx反向代理与负载均衡、动静分离

负载均衡

客户端发送多个请求到服务器,服务器处理请求,有些可能要访问数据库,服务器处理完毕后再将结果返回客户端。 这种架构模式单一,适合并发请求少的情况,但并发量大的时候如何解决?

image

首先可能想到升级服务器配置,但硬件的性能提升不能满足日益增长的需求,此时想到服务器集群,增加服务器数量,然后将原先请求单个服务器的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,也就是我们讲的负载均衡。nginx可以作为负载均衡器。

image

动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,减少服务器压力,加快解析速度。

image

在实际场景中nginx反向代理负载均衡的应用

如对接口不同版本的路由进行分发,对/apiv1的路由转发到A服务器上,对/apiv2的路由转发到B服务器上。 对不同服务类型的接口进行路由分发,如某网站在服务器上使用nginx对/webapi的路由转发到javaweb服务器上某端口,对/aiapi转发到提供人工智能图像识别的服务器上某端口。

总结

正向代理和反向代理的区别在于代理是在客户端还是服务端。可以在服务器上安装nginx软件作为反向代理服务器根据不同路由分发到不同的服务器ip上,实现负载均衡,以提高网站性能,更高并发请求。

作者:node_ph
链接:https://juejin.im/post/6895669126392774663

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:如何实现nginx正向代理与反向代理

链接:https://www.javascriptc.com/4773.html

« 077. 组合
Nginx(二) — 核心配置»
Flutter 中文教程资源

相关推荐

QR code