理解反向代理与 API 网关的核心差异、架构原理及协同工作方式
高性能反向代理服务器 / 负载均衡器
NGINX 是一款开源的高性能 HTTP 服务器和反向代理服务器,以其高并发、低内存消耗著称。它工作在 OSI 模型的第 7 层(应用层),主要处理 HTTP/HTTPS 流量的负载均衡、静态文件服务和反向代理。
API 管理与流量管控的统一入口
API 网关是微服务架构中的"守门人",提供统一的 API 管理平台。除了基本的请求路由外,还承担协议转换、认证授权、流量管控、数据转换、监控告警等企业级功能,是 API 经济的基础设施。
NGINX 是网络基础设施,工作在传输/应用层;API 网关是业务抽象层,工作在应用层之上
NGINX 专注于流量转发;API 网关聚焦于API 全生命周期管理
NGINX 适合所有Web 流量;API 网关专为微服务/API 管理场景设计
NGINX 采用 Master-Worker 架构,Master 进程负责管理配置、监控 Worker,Worker 进程处理实际请求
使用 epoll(Linux)或 kqueue(BSD/macOS)实现高效的事件监控,避免阻塞 I/O
支持轮询、加权轮询、IP Hash、最少连接等多种负载均衡策略
所有客户端请求通过 API 网关统一接入,根据路由规则转发到对应的后端服务
在网关层统一处理身份验证和权限控制,无需每个微服务独立实现
保护后端服务免受过载,实现精细化的流量管控和容错处理
支持 HTTP/gRPC、REST/GraphQL、WebSocket 等多种协议的转换
Worker 进程通过 epoll 监听端口,接收客户端 TCP 连接
解析 HTTP 请求行、Header,确定请求目标(静态资源 or 代理)
根据配置的负载均衡算法,从 Upstream 池中选择目标服务器
将请求转发到后端服务器,接收响应后返回给客户端
接收 HTTP/gRPC/Dubbo 等协议请求,解析请求内容
验证请求者身份,提取用户/应用标识
检查用户是否有权限访问目标 API
根据限流规则控制请求通过率,保护后端服务
根据路由规则转发请求到后端微服务
执行真实的后端调用,处理响应
记录请求日志,发送监控指标
| 对比维度 | 🟢 NGINX | 🟠 API 网关 |
|---|---|---|
| 定位 | 网络基础设施 / 反向代理 | API 管理平台 / 微服务入口 |
| 层级 | L4/L7 (传输/应用层) | L7 应用层 (API 语义) |
| 核心功能 | 负载均衡、SSL 终结、静态资源 | API 路由、认证授权、流量管控 |
| 协议支持 | HTTP/HTTPS, TCP/UDP, WebSocket | HTTP, gRPC, WebSocket, Dubbo |
| 性能 | 极高(C 语言,单机百万并发) | 较高(Java/Go,通常数千 QPS) |
| 配置方式 | 静态配置文件 (nginx.conf) | 动态配置 (Dashboard / API / YAML) |
| 认证能力 | 基础 Basic Auth、Client Cert | JWT、OAuth2、API Key、SSO、SAML |
| 流量控制 | limit_req/limit_conn(简单限流) | 多维度限流、熔断、降级、重试 |
| 服务发现 | 手动配置 upstream,DNS 解析 | 自动集成 Consul/Eureka/Nacos |
| 监控能力 | access_log, error_log, status 模块 | 实时仪表盘、链路追踪、告警 |
| 插件扩展 | Lua/NJS 模块开发 | 插件市场、Java/Go/Lua 插件 |
| 典型产品 | NGINX, OpenResty, Tengine | Kong, APISIX, Spring Cloud Gateway |
| 适用场景 | 网站、CDN、游戏、IoT | 微服务、API 即服务、开放平台 |
| 部署复杂度 | 简单(单个二进制/包) | 中等(依赖注册中心/数据库) |
| 运维成本 | 低(稳定可靠,文档完善) | 中高(需要管理配置、插件、集群) |
注意 NGINX 和 API 网关处理请求的步骤差异
NGINX 以极高速度完成转发,API 网关在每步都进行检查
API 网关在入口处过滤非法请求,保护后端服务
NGINX 和 API 网关解决不同层面的问题,在生产环境中通常联合部署
处理海量并发连接、静态资源、SSL 终结等基础设施层面的工作
处理认证授权、流量治理、API 管理等业务层面的工作