Proxy、Reverse Proxy 和 Load Balancer:像餐厅一样解释

发布: (2025年12月19日 GMT+8 02:30)
7 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体内容(文本、段落或代码块),我将按照要求将其翻译成简体中文,并保留原始的格式、Markdown 语法以及技术术语。谢谢!

TLDR

  • 一个 Proxy (Forward) 充当你的(客户端)中间人,保护你的身份并过滤出站流量。
  • 一个 Reverse Proxy 充当服务器的中间人,保护它们并管理进入的请求。
  • Load Balancing 是反向代理的关键功能,它将流量分配,以防单个服务器过载。
  • 在现代系统中,云负载均衡器和反向代理协同工作:前者处理外部流量,后者负责更智能的内部路由。

代理(正向代理):你的在线个人助理

想象一下,你想预订一张餐桌,但不想直接与餐厅互动,因为你太忙、害羞,或者根本不想这么做。于是,你请你的个人助理帮你完成预订。餐厅只会和你的助理对话,永远不会知道你的真实身份。

在这种情境下,就是你的电脑,助理就是 代理服务器(或正向代理)。它在你的私有网络与互联网之间充当中间人。它在企业环境中的主要职责包括:

  • 安全 – 充当内部网络的防护盾。过滤流量,能够在恶意网站或病毒到达员工电脑之前将其拦截,保护整个公司。
  • 控制 – 让管理员能够阻止访问特定网站(黑名单),以防止浏览不安全或不适当的内容。此外,还可以记录用户活动,以监控浏览行为并确保遵守公司政策。
  • 性能 – 可以本地保存(缓存)请求的内容。如果同事在 YouTube 上观看教程视频,代理会将其保存。其他同事以后想观看时,代理会直接提供已保存的副本,节省带宽并加快访问速度。

反向代理:餐厅的接待员

现在你已经来到餐厅。与其在各个大厅里寻找座位,你会去找接待员。他知道哪些桌子空着,并把你带到合适的桌子。

接待员就是 reverse proxy。它位于网站服务器(餐厅的用餐区)之前,管理所有进入的请求(客人),并将它们指向最合适的服务器。它的功能与普通代理非常相似,只是从服务器的角度来看:

  • 安全 – 充当服务器的防护盾,隐藏它们免受直接暴露在互联网之下。诸如 SSL 加密等安全措施在反向代理层面处理,保护整个内部基础设施。
  • 性能 – 可以使用缓存为客户端提供更快的响应,减轻服务器的负载。
  • 日志记录 – 记录所有进入的请求,是排查技术问题(troubleshooting)的宝贵工具。

负载均衡:关键功能,但并非唯一

接待员还有将客人均匀分配到各个房间和桌子上的任务,以避免某一区域过于拥挤而其他区域空置。此功能即 load balancing

必须了解,负载均衡是反向代理最重要的特性之一,但反向代理的功能远不止此:它是完整的流量管理器,而不仅仅是分配器。

成功组合:云负载均衡器 与 反向代理

一个常见的问题是:“如果像 AWS 这样的云平台已经提供了负载均衡器,我为什么还要使用像 NGINX 这样的反向代理?”
答案是,实际上,两者在多层次的架构中一起使用,以实现最高的安全性和可扩展性。

云负载均衡器

  • 充当第一个入口点。执行基础的负载均衡,将流量简单安全地分发到你的私有网络。

反向代理(例如 NGINX)

  • 位于网络内部,执行更智能、更细粒度的路由。
  • 可以基于 HTTP 头、Cookie 和会话数据做出决策。
  • 在微服务架构中,对 /api/users 的请求可以路由到不同的服务,而对 /api/products 的请求则路由到另一个服务。
  • 负责 SSL 终止,解密流量以检查内容,从而做出更为精准的路由决策。

回到类比,这就像前台为常客安排他们喜欢的座位,或为素食者提供特别菜单。

结论

Proxy、reverse proxy 和 load balancer 不再是神秘概念,而是使现代网络安全、可扩展且高效的基本组件。关键的区别很简单:一个 forward proxy 为客户端(你)工作,而一个 reverse proxy 为服务器(网站)工作。

希望这个解释对你有帮助!

感谢阅读! 💪

Back to Blog

相关文章

阅读更多 »