在微服务体系中,Nacos 主要承担“服务注册与发现、配置中心”的职能,Gateway(如 Spring Cloud Gateway)通常负责“路由转发、过滤、安全鉴权、灰度流量控制”等功能,而 Nginx 则常被用作“边缘反向代理”或“统一流量入口”。在实际项目里,这三者经常组合使用,以实现高扩展、高可用、可观测且灵活的流量调度。
一、Nacos + Gateway + Nginx 的常见部署架构
一般来说,可以把 Nginx 放在最外层作为“边缘代理”或“静态资源服务器”,在内网或容器集群里部署 Gateway 实例作为微服务的入口网关,网关与 Nacos 对接获取后端微服务实例信息,然后将请求路由到对应的服务。
示意图:
┌───────────────────┐
Internet │ Nginx (Edge) │ <-- 监听80/443端口,做SSL、静态资源、反向代理
└────────┬──────────┘
│
▼
┌───────────────────┐
│ Spring Cloud │ <-- 网关集群(多个节点)
│ Gateway │ <-- 进行路由、鉴权、灰度流量控制
└────────┬──────────┘
│
┌──────────────────┴───────────────────┐
│ │
│ ┌───────────────────┐ │
│ │ microservice-A │ │ <-- 内部微服务集群
│ └───────────────────┘ │ <-- (多实例) 注册到 Nacos
│ │
│ ┌───────────────────┐ │
│ │ microservice-B │ │
│ └───────────────────┘ │
└──────────────────────────────────────┘
┌───────────────────┐
│ Nacos │ <-- 提供服务注册、发现、配置管理
│ (Discovery + Conf)│
└───────────────────┘