一、Nginx 和 Gateway 的关系:是替代还是协作?

不是替代关系,而是协作关系。

1. Nginx 的角色(通常在最外层)

  • 反向代理 & 负载均衡:将前端请求分发到多个后端服务或网关实例。

  • 静态资源服务:部署前端(如 Vue/React 打包后的静态文件)。

  • SSL 终止:处理 HTTPS,减轻后端压力。

  • 安全防护:如防 DDOS、限流、WAF(配合模块)。

  • 高可用入口:作为整个系统的统一入口。

2. API Gateway 的角色(在微服务层前面)

  • 服务路由:根据路径将请求转发到具体的微服务(如 /user/** → user-service)。

  • 认证鉴权:统一处理 JWT、OAuth2 等。

  • 限流熔断:防止某个服务被压垮。

  • 日志监控:统一记录请求日志、链路追踪。

  • 协议转换:如 REST → gRPC。


二、典型架构图(高可用 + 高并发)

用户 → DNS → [Nginx LB (HA)] → [API Gateway 集群] → [微服务集群]↑                   ↑(静态资源)         (动态路由/鉴权/限流)

组件说明:

  1. Nginx 集群(主备或双活):使用 Keepalived + VIP 实现高可用。多台 Nginx 前置负载均衡(可再加 LVS/F5 或云 SLB)。

  2. API Gateway 集群:多实例部署,注册到 Nginx 或服务发现(如 Nacos/Eureka)。支持横向扩展,应对高并发。

  3. 微服务集群:每个服务多实例部署,通过注册中心发现。


三、配置示例

1. Nginx 配置(反向代理到 Gateway)

# nginx.conf 或 conf.d/gateway.confupstream gateway_backend {server 192.168.1.10:8080 weight=5;  # Gateway 实例1server 192.168.1.11:8080 weight=5;  # Gateway 实例2# 可配置健康检查keepalive 32;
}server {listen 80;server_name api.yourdomain.com;# 静态资源(前端)location / {root /usr/share/nginx/html;try_files $uri $uri/ /index.html;}# 动态请求代理到网关location /api/ {proxy_pass http://gateway_backend;proxy_http_version 1.1;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}# WebSocket 支持location /ws/ {proxy_pass http://gateway_backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}

2. Spring Cloud Gateway 配置(application.yml)

spring:cloud:gateway:routes:- id: user-serviceuri: lb://user-service  # 从注册中心负载均衡predicates:- Path=/api/user/**filters:- StripPrefix=2  # 去掉 /api/user 前缀- id: order-serviceuri: lb://order-servicepredicates:- Path=/api/order/**filters:- StripPrefix=2# 全局限流(Redis + Token Bucket)redis-rate-limiter:replenishRate: 10   # 每秒补充10个令牌burstCapacity: 20   # 桶容量20# 服务发现(如 Nacos)nacos:discovery:server-addr: 192.168.1.100:8848

四、如何实现高可用 & 高并发?

五、常见误区

❌ 只用 Nginx 不用 Gateway→ 适合简单系统,但微服务多了难以维护路由和鉴权。

❌ 只用 Gateway 不用 Nginx→ Gateway 也能做负载均衡,但 Nginx 更成熟,适合做最外层防护和静态资源服务。

✅ 推荐:Nginx + Gateway 协同工作

  • Nginx 做“门卫”和“前台”

  • Gateway 做“调度中心”和“安全审计”


六、进阶建议

  1. 使用云原生方案:如 Kubernetes + Ingress (Nginx Ingress Controller) + Istio/Envoy Gateway。

  2. 自动化部署:配合 CI/CD 工具(Jenkins/GitLab CI)自动发布 Gateway 配置。

  3. 灰度发布:在 Gateway 层实现基于 Header 的流量切分。

  4. 性能压测:使用 JMeter 或 wrk 测试 Nginx + Gateway 的吞吐能力。


总结

  • ✅ 前端用 Nginx 部署静态资源

  • ✅ 后端用 API Gateway 做统一入口、路由、鉴权

  • ✅ Nginx 反向代理到 Gateway 集群,实现高可用

  • ✅ 通过负载均衡、缓存、异步、集群化实现高并发

文章转载自:古渡蓝按

原文链接:高可用高并发微服务架构设计:Nginx 与 API Gateway 的协同实践 - 古渡蓝按 - 博客园

体验地址:JNPF快速开发平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96541.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96541.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96541.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解码LLM量化:深入剖析最常见8位与4位核心算法

解码LLM量化:深入剖析8位与4位核心算法 大型语言模型(LLM)的性能日益强大,但其庞大的体积和高昂的计算成本构成了部署的主要障碍。模型量化,作为一种将高精度浮点权重(如16位)映射到低位宽整数&…

提问:温度不改变 logits 与概率的排名,为何还会影响模型输出?

你此前围绕温度的核心困惑始终是:“温度不改变 logits 与概率的排名,为何还会影响模型输出?” 以下总结将紧扣这一困惑,并重点补充核采样(Top-p)在其中的作用,明确温度与核采样如何共同影响输出…

【文献阅读】Lossless data compression by large models

1. 中华人工智能研究中心,郑州。 2. 鹏程实验室,深圳。 3. 上海数学与交叉学科研究所,上海。 4. 中国科学院计算技术研究所,北京。 5. 宁波人工智能产业研究所,宁波。 6. 滑铁卢大学计算机科学学院,加拿大安…

注意力机制:捕获长距离依赖关系的革命性技术

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术! ✨ 1. 注意力机制概述:为什么需要关注"长距离依赖&qu…

PHP如何使用JpGraph生成柱形图?

PHP使用JpGraph库生成各类统计图形具有显著优势,该库作为专业的PHP图表生成工具,能够高效创建包括折线图、饼图、散点图在内的多种数据可视化图形,其核心价值在于提供了丰富的图形定制能力和简洁的API接口。JpGraph通过纯PHP实现,…

免费的端口映射工具 ChmlFrp

免费的端口映射工具 ChmlFrp 前言:之前我写过一篇关于cloudflare tunnel的使用教程,ChmlFrp是一个类似的工具,也可以用来进行内网穿透 我的博客对应文章地址 1.注册账号 注册地址 点击这个链接前往官网注册一个账号,过程简单&…

遥感领域解决方案丨涵盖:高光谱、无人机多光谱、空天地数据识别与计算

一:AI智慧高光谱遥感实战:手撕99个案例项目、全覆盖技术链与应用场景一站式提升方案在遥感技术飞速发展的今天,高光谱数据以其独特的光谱分辨率成为环境监测、精准农业、地质勘探等领域的核心数据源。然而,海量的波段数据、复杂的…

中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸

随着新能源汽车产业向轻量化与高集成度发展,壳体作为电池组和电驱系统的核心承载部件,其孔位加工精度直接影响装配密封性及结构强度,传统人工测量方式已难以满足现代化生产需求。自动化三维测量设备的引入,为汽车壳体直径尺寸测量…

08.21总结

圆方树 引入 我们注意到,树结构相比普通图具有诸多优良特性。若能将在无向图上求解的问题转化为树结构问题,往往能大幅简化求解过程。圆方树正是实现这一转化的有效工具。 定义 我们称原图中的点为"圆点"。通过引入方点并调整边的关系&#xf…

亚马逊广告优化新逻辑:从人工苦力到AI智能的进化之路

"为什么我的广告花费越来越高,转化却越来越差?""如何在海量关键词中找到真正能带来转化的黄金词?""为什么手动调整出价总是跟不上流量变化的速度?""怎样才能避免因库存问题导致的广告权重暴跌…

【51单片机】【protues仿真】基于51单片机水位监测系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示当前水位值 2、按键设置水位上下限阈值 3、当水位低于下限,启动蜂鸣器警报并抽水至水位上限停止抽水 4、电机模拟水泵,蜂鸣器,指示…

白名单过滤的文件上传如何bypass:boot2root靶机之fristileaks

靶机提示 base64解码提取图片 文件上传之apache多后缀名解析漏洞 linpeas dirtycow提权 靶机下载 通过网盘分享的文件:FristiLeaks_1.3.ova 链接: https://pan.baidu.com/s/1ZWznp8egNGwnQqwh1gkSZg?pwdwwvp 提取码: wwvp --来自百度网盘超级会员v8的分享主…

Centos 8 管理防火墙

firewall-cmd 检查与安装 在 CentOS 8 上安装和启用 firewalld(提供 firewall-cmd 工具)的步骤如下:1. 检查 **firewalld** 是否已安装 在安装前,先检查系统中是否已安装: sudo firewall-cmd --version如果返回版本号&…

使用PPT进行科研绘图过程中常用的快捷键

PPT科研绘图常用快捷键速查表功能类别快捷键功能描述基础操作与选择Ctrl A全选幻灯片上的所有对象。Ctrl D快速复制选中的对象,并自动保持等间距排列。Shift Click多选多个对象。Ctrl G将选中的多个对象组合成一个整体。Ctrl Shift G取消组合。Ctrl 拖动复制…

`strchr` 字符串查找函数

1) 函数的概念与用途 strchr 是 C 标准库中的一个基础但极其重要的字符串处理函数,它的名字来源于"string chracter"(字符串字符)。这个函数的功能非常明确:在字符串中查找特定字符的第一次出现位置。 可以将 strchr 想…

Redis 678

Redis 8 是当前的最新稳定版(截至 2024 年中),它在 Redis 7 的基础上带来了更多重要改进。我们来对这三个主要版本进行一次全面的功能和性能对比。 核心演进脉络 Redis 6 (2020):多线程时代的开创者。解决了网络 I/O 瓶颈&#xf…

【大白话解析】 OpenZeppelin 的 Address 库:Solidity安全地址交互工具箱​(附源代码)

🧩 一、这个文件是干嘛的?—— Address.sol 是个“工具箱” 你可以把这个 Address.sol文件理解为一个 ​​“工具箱”​​,里面装了一堆​​专门用来安全地跟别的地址(账户或合约)打交道的工具函数​​。 在区块链世界里,地址(address)可以是: ​​外部账户(EOA)…

漫谈《数字图像处理》之测不准原理

在数字图像处理中,提到的 “测不准原理” ,和量子力学里由海森堡提出的 “不确定性原理” (Heisenberg uncertainty principle,也叫海森堡测不准原理)有一定的类比关系,但本质上并不是同一个概念。以下为详…

Linux服务测试

一、环境准备确认 确保 4 台主机(APPSRV、STORAGESRV、ROUTERSRV、CLIENT )网络连接正常,虚拟机网卡模式按要求设置(APPSRV、STORAGESRV 为 NAT 模式;ROUTERSRV 为双网卡,NAT 仅主机模式;CLIE…

2.Shell脚本修炼手册---创建第一个 Shell 脚本

2. 创建第一个 Shell 脚本 文章目录2. 创建第一个 Shell 脚本2.1 什么是 Shell 脚本?2.1.1 脚本开头:告诉系统用什么程序执行2.1.2 脚本注释:给人看的 “说明书”2.1.3 bash 与 sh 的区别2.2 如何执行 Shell 脚本?方法 1&#xff…