一、API 网关概述

大家好,我是这次课程的讲师。先聊聊什么是 API 网关。

说白了,API 网关就是系统对外的“总入口”。

所有客户端请求——无论是 App、网页还是第三方服务——都先打到网关,再由网关转发给后端的各种微服务。我习惯把它的职责概括为:路由、安全、治理。

你想想看,没有网关的时代,客户端得记住几十个后端服务的地址,直接调用。一旦某个服务地址变了,所有客户端都得跟着改,这多头疼?而且认证、限流、日志这些通用功能,每个微服务都得自己实现一遍,重复劳动还容易出漏洞。

有了网关,一切就清晰多了。客户端只认网关这一个地址。路由规则、安全策略、流量控制都在网关层统一配置。我在项目中遇到过好几次这样的情况:线上出现突发流量,直接调整网关的限流阈值就扛住了,完全不用动业务代码。

1.1 什么是 API 网关

API 网关是一个位于客户端和后端服务之间的中间层。它负责处理所有进出请求。

核心功能包括:

  • 请求路由:根据 URL、Header 等条件,将请求转发到对应的后端服务。
  • 认证与授权:在网关层统一校验用户身份和权限。
  • 限流熔断:保护后端服务不被突发流量冲垮。
  • 协议转换:比如把外部的 HTTP 请求转换成内部 RPC 协议。
  • 日志与监控:集中记录请求日志,便于排查问题。

举个例子:用户登录时,客户端发一个请求到网关,网关先校验身份(比如检查 ),然后把请求转发给用户服务。如果同时有大量登录请求,网关还可以做限流,避免用户服务被打垮。

我的理解:API 网关就像公司的前台。所有访客(客户端)先到前台,前台确认身份、登记信息、然后指引访客去对应的工位(后端服务)。一旦前台出了问题,整个公司就乱了。所以网关的稳定性和安全性至关重要。

1.2 常见 API 网关产品对比

市面上 API 网关产品不少,我这些年基本都用过。这里做个对比,帮你快速了解差异。

产品 核心语言 主要优点 主要缺点 适用场景
Kong OpenResty/Lua 插件生态丰富、社区活跃、支持声明式配置 学习曲线中等、调试插件较麻烦 企业级微服务、需要大量现成插件的场景
APISIX OpenResty/Lua 性能极高、支持热更新、路由匹配快 社区比 Kong 小、文档有时不全 高并发、对性能要求严苛的场景
Spring Cloud Gateway Java/Reactor Spring 生态整合好、Java 开发者友好 资源占用高、调优复杂 Java 技术栈为主的团队
Nginx C 稳定轻量、配置灵活、几乎零开销 缺少管理 UI、需手写 Lua 扩展 对稳定性和资源控制有极致需求的场景

你可能会问:那这些产品里面,哪个最适合做证书管理?嗯,这个问题问得好。所有网关都支持 TLS/SSL 证书配置,但证书的生命周期管理——比如自动签发、续期、吊销——大部分产品要靠插件或外部工具来做。

我个人习惯用 Nginx 作为网关核心,原因很简单:轻量、稳定、生态成熟。不过 Nginx 本身缺乏动态证书能力,所以这次课程我会基于 OpenResty + Lua 来扩展它,实现证书管理的全流程。

一个小建议:选型时别只看功能列表,要考虑团队的技术栈和维护成本。Java 团队用 Spring Cloud Gateway 可能更顺手,但如果你追求极致的资源效率和扩展灵活性,Nginx/OpenResty 路线至今仍是很多大厂的选择。

1.3 本课程网关选型

这次实战课程,我选的是 Nginx + OpenResty + OpenSSL 技术栈。

为什么这么选?

  • Nginx:作为反向代理和流量入口,成熟稳定,性能强悍。
  • OpenResty:本质上就是 Nginx + LuaJIT,可以动态处理请求。用它写证书相关的业务逻辑非常灵活。
  • OpenSSL:用来做证书的签发、校验、加密。这是后端证书管理的核心工具。

我曾在一家金融科技公司带团队,当时网关层要管理几千个 API 的证书。用 Nginx 原生的方式很难自动化,后来我们基于 OpenResty 做了一个证书管理模块,能自动检测证书过期、触发续期、并热加载新证书。效果非常好,线上零故障。

本课程就是基于这个实战经验提炼出来的。我不会从零教你写 OpenResty,但会用最清晰的代码示例,带你走通证书管理的完整链路。

# 选型关系示意图(非真实代码)
# Nginx -> 请求代理 + TLS 终止
# OpenResty -> 动态路由 + 证书校验逻辑
# OpenSSL   -> 证书签发 + 加解密操作

注意:本课程要求你具备基础的 Linux 操作能力和 Nginx 配置经验。如果你完全没接触过,建议先花一小时熟悉一下 Nginx 的基本配置语法。

1.4 本章知识结构

为了帮你快速建立整体的认知框架,我画了一张图。这张图把 API 网关、证书管理和本课程的核心逻辑串在了一起。

你可以对着它,想想每个环节在你的项目里是怎么落地的。

API 网关证书管理核心关系图 客户端请求 API 网关层 路由 安全控制 请求/响应转换 限流熔断 日志监控 后端微服务 证书管理 签发 / 续期 / 吊销 网关层统一处理后 证书管理独立于业务 便于集中治理

从这张图你能看到:客户端请求先打到 API 网关层,网关做路由、安全、限流等操作,最终才转发给后端微服务。而证书管理是网关安全控制的核心环节之一——我们后面会深入讲它如何实现。

1.5 为什么选择证书管理作为切入点

你可能觉得证书管理是个小众话题。但我在多个项目里都踩过坑。

有一次线上证书过期,导致整个 API 入口挂掉,排查了两个小时才发现是证书到期。那叫一个惨。从那以后,我养成了一个习惯:凡是网关层,必须配上证书自动续期和告警机制。

所以这门课,我不光讲 API 网关的理论,更重要的是带你动手实现一个证书管理的完整模块。学完之后,你不仅懂网关,还能在项目里落地一个实用的安全工具。

一句话总结:API 网关是所有请求的守门人,而证书管理是守门人手里最关键的钥匙。本课程,我带你亲手造这把钥匙。