NGINX.COM
Web Server Load Balancing with NGINX Plus

API 网关接受来自客户端的请求(特别是 API 调用),并将其路由到相应的微服务。它能够保护并处理后端服务和 API 消费者之间的重要流量,从而降低发生漏洞、停机和性能低下的风险。

如今,大多数现代应用均使用 API 构建而成。API 是一种软件接口,支持两个应用之间相互通信,并允许产品和服务之间以请求和响应的形式进行交互。随着 API 变得越来越普遍并分布在微服务架构中,需要额外的基础架构来确保可扩展性和安全防护。

 

为何使用 API 网关?

使用 API 网关意味着您可以维护单个 API 域(例如 api.example.com)。借助 API 网关,您能够为所有客户端提供一个入口点,以便根据用户请求将请求路由到不同版本的 API。API 网关支持您通过单个请求调用多个微服务并汇总结果,从而提供最佳响应。

如欲详细了解如何将 NGINX 部署为 API 网关,请参阅我们的免费电子书《将 NGINX 部署为 API 网关》

API 网关的基本功能

API 网关既可用于单体应用,也可用于基于微服务的应用。API 网关具有以下功能,包括:

  • 对进行 API 调用的请求者进行身份验证 (AuthN)
  • 验证请求者是否有权发出请求 (AuthZ)
  • 将请求路由到相应的后端
  • 实施速率限制以防止系统过载
  • 实施速率限制来缓解 DDoS 攻击
  • 卸载 SSL/TLS 流量以提高性能
  • 处理错误和异常

 

API 网关与 API 管理

“API 网关”“API 管理”有时可以互换使用,但实际上并非同义词。API 网关是位于客户端和 API 端点之间的数据平面。它是负责路由、策略和安全的单个代理服务器。API 管理是指在生产环境中管理 API 的控制平面。它可定义策略、推送配置、生成报告和警报,并提供针对所有 API 网关的可视性。

理想情况下,API 管理平台独立于基础架构,支持您通过最适合用例的方式在各种环境中(例如自有数据中心、云平台和边缘节点)自由地部署 API 网关。

 

将 API 网关用于微服务

在微服务架构中,单个 API 可能具有数百个端点,单个应用可能包含多个微服务,每个微服务都通过 API 连接。由于每个微服务会暴露大量 API 端点,因此潜在的攻击面远远大于单体应用。

将 API 网关用于微服务能够简化客户端和 API 之间的访问与通信,从而降低风险。但 API 网关仍然封装 API,这些 API 通常是开放的。API 会暴露连接所需的数据,而且还可能暴露敏感数据。

 

API 安全性

开放式 Web 应用安全项目 (OWASP) 指出了 OWASP 十大 API 安全风险项目中最常见的漏洞:

API1.失效的对象级授权
API2.失效的用户身份验证
API3.过度的数据暴露
API4.缺乏资源和速率限制
API5.失效的功能级授权
API6.批量赋值
API7.安全防护配置错误
API8.注入
API9.资产管理不当
API10.日志记录和监控不足

为了保护 API 免受这些肆虐的新攻击,保护 API 网关变得至关重要。如欲进一步了解保护 API 网关的重要性,请参阅我们的博文《使用 NGINX App Protect WAF 保护 API 网关》

 

API 治理

API 治理是指在 API 和 API 网关中应用规则和安全防护。实施灵活的 API 治理模型有助于平衡全局策略,如日志记录、错误响应代码和 TLS 配置。

对于任何实施 API 优先策略的组织,特别是采用数千个 API 的大型组织,通过 API 治理确保一致性可以有效应对潜在的 API 蔓延。虽然 API 治理曾被认为可能会拖慢开发速度,但当现在需要大规模管理 API 时,实施 API 治理就很有必要。

 

API 网关学习资源

以下列举了更多 API 网关功能、用例和常见部署模式的相关信息:

 

NGINX 如何助一臂之力?

NGINX 不仅是速度最快的 Web 服务器,而且还可部署为云原生、易用型 API 网关。通过将 NGINX 配置为 API 网关,您可以使用速率限制策略保护 API,限定请求方法,并提供细粒度的访问控制。

NGINX 作为 API 网关也是一种支持 CI/CD 的高性能解决方案,具有高级安全防护。如欲了解更多信息,请阅读我们的免费电子书《将 NGINX 部署为 API 网关》

如欲试用 NGINX Plus,请立即下载 30 天免费试用版,或与我们联系以讨论您的用例。

NGINX 既提供通用工具,也提供 Kubernetes 原生工具,可根据您的用例和部署模式助力您的 API 网关实现。

通用工具:

立刻申请 30 天免费试用 NGINX Management Suite,其中包括作为 API 网关的 NGINX Plus 和 API Connectivity Manager。

Kubernetes 原生工具:

  • NGINX Ingress Controller — 使用 API 网关、身份验证和可观测性功能管理 Kubernetes 集群边缘的应用互联
  • NGINX Service Mesh — 开发人员友好型的解决方案,用于 service 到 service 的互联、编排、安全防护和可观察性

立即申请 30 天免费试用 NGINX Ingress Controller (包含 NGINX App WAF 和 DoS),并下载始终免费的 NGINX Service Mesh。

Tags

No More Tags to display