about blog github

25 Oct 2023
gateway和load balancer和proxy总结

工作中经常遇到gateway和load balancer和proxy,有时候实在搞不清楚他们之间的区别和使用场景,所以想花点时间查阅下资料,权当学习记录。

api gateway

作用

  • api生命周期管理: api网关允许您管理api的完整生命周期,从创建到废弃
  • 身份验证和授权: 保证只有授权的用户才能访问您的api
  • 速率限制和节流: 防止api被恶意或误用
  • api组合和转换: 将多个api聚合成一个,或者对api进行格式转换

场景

  • 当您有多个微服务,并希望为它们提供统一的访问入口时
  • 当您想对api进行版本控制或进行统计和分析时
  • 当您需要高级的安全性和访问控制时

application gateway

作用

  • 应用层路由: application gateway是一个应用层的负载均衡器,能够基于http请求内容(如uri、头部等)进行流量路由
  • web应用防火墙: 提供集中的,http-specific的安全保护,能够抵御各种web应用攻击,如xss、sql注入等
  • ssl终止: application gateway可以处理ssl连接,释放后端服务器的负担
  • cookie持久性: 它可以根据cookie来确保一个特定的用户会话始终定向到同一个后端服务器
  • 端到端ssl: 除了ssl终止外,它还可以为到后端资源的流量加密
  • url路径基础的路由: 允许您根据访问的url路径将流量路由到不同的后端池

场景

  • 需要应用层路由: 当需要基于http内容进行决策和路由流量时,例如根据url路径或头部信息来决定流量应该转发到哪个后端服务
  • web应用的安全防护: 当web应用需要增强安全性,防止常见的web攻击时
  • 大型或复杂的微服务架构: 在这样的架构中,流量可能需要根据其具体的目的或请求内容来路由到不同的服务
  • 需要ssl管理: 当需要中央化地管理ssl证书,进行ssl终止或端到端加密时
  • 保持用户会话: 在需要确保用户与特定后端服务器的持续交互的应用中,如购物车功能

load balancer

作用

  • 分发流量: 根据预定的策略将客户端请求分发到多个服务器
  • 高可用性和冗余: 保证即使某些服务器故障,服务仍可继续
  • 可扩展性和性能提升: 通过分发流量,负载均衡器可以帮助应对高流量
  • 健康检查和监视: 自动检测不健康的服务器,并从流量分发中移除它们

场景

  • 当您的应用程序有大量的并发用户,并且要求高可用性时
  • 当您需要动态地添加或移除服务器资源时
  • 当您希望自动化地处理故障转移时

reverse proxy

作用

  • 安全性和访问控制: 隐藏和保护后端服务器
  • ssl终止和加密: 在代理级别处理ssl,释放后端服务器的负担
  • 缓存和压缩: 加速响应时间,提高性能
  • web加速和优化: 使用各种技术提高web应用的加载速度

场景

  • 当您想保护您的内部网络结构,并防止直接访问后端服务器时
  • 当您需要缓存静态内容以加速web应用程序时
  • 当您需要进行ssl终止或内容优化时

forward proxy

作用

  • 用户身份隐匿: 正向代理允许用户隐藏其真实的ip地址,以匿名的方式浏览网络
  • 内容过滤: 代理服务器可以用来过滤不适当或受限的内容,使得用户无法访问某些特定的网站或资源
  • 网络性能和缓存: 通过缓存经常访问的资源,正向代理可以加速用户的浏览速度
  • 访问控制: 企业或组织可以使用正向代理来限制员工或成员访问某些特定的外部资源
  • 数据流量记录: 正向代理允许管理员记录和监控所有经过的网络流量

场景

  • 在企业或学校环境中,当组织希望限制或控制成员访问互联网的能力时
  • 当用户想要绕过地理或网络限制以访问特定的内容时
  • 在需要详细记录网络活动,例如进行网络审计或分析时
  • 当希望通过缓存提高网络性能或减少带宽消耗时

There’s no problem in computer science that can’t be solved by adding another level of indirection



LEo at 00:12

about blog github