envoy和nginx的区别

news/2025/9/23 11:48:28/文章来源:https://www.cnblogs.com/zafu/p/19106921

Envoy 和 Nginx 都是高性能的网络代理和反向代理服务器,广泛应用于现代分布式系统中。尽管它们在某些场景下功能重叠(如负载均衡、反向代理),但在设计目标、架构、功能特性和适用场景上存在显著差异。

以下是 Envoy 和 Nginx 的主要区别:


1. 设计目标与定位

  • Nginx:

    • 起源于 2004 年,最初设计用于解决 C10K 问题(高并发连接)。
    • 定位为通用的 Web 服务器、反向代理、负载均衡器和 HTTP 缓存。
    • 适用于传统的 Web 应用架构,如静态内容服务、API 网关、负载均衡等。
  • Envoy:

    • 由 Lyft 在 2016 年开发,专为云原生、微服务架构设计。
    • 定位为服务网格(Service Mesh)中的边车代理(Sidecar Proxy)。
    • 强调可观察性、动态配置、服务发现和高级流量管理。

2. 架构与部署模式

  • Nginx:

    • 通常作为集中式反向代理或负载均衡器部署(如在入口网关或应用前端)。
    • 部署方式:单实例或集群,通过配置文件(.conf)管理。
  • Envoy:

    • 支持边车模式(Sidecar),每个服务实例旁部署一个 Envoy 实例,形成服务网格。
    • 支持边缘代理(Edge Proxy) 和 内部服务间通信代理。
    • 使用动态配置 API(如 xDS:Listener Discovery Service, Route Discovery Service 等)实现热更新。

3. 配置方式

  • Nginx:

    • 静态配置为主,通过 nginx.conf 文件定义。
    • 热重载支持有限,配置变更通常需要 reload。
    • 第三方模块(如 OpenResty)可通过 Lua 脚本实现动态逻辑。
  • Envoy:

    • 完全动态配置,通过 xDS API 从控制平面(如 Istio、Consul)获取配置。
    • 支持运行时动态更新路由、集群、监听器等,无需重启。
    • 更适合大规模、频繁变更的微服务环境。

4. 可观察性与监控

  • Nginx:

    • 提供基础访问日志和错误日志。
    • 可通过 nginx-status 模块暴露基本指标。
    • 需要额外工具(如 Prometheus exporter)实现高级监控。
  • Envoy:

    • 内建丰富的可观察性:支持结构化日志、指标(Stats)、分布式追踪(Tracing)、访问日志。
    • 原生支持 Prometheus 格式指标,集成 Jaeger/Zipkin 进行分布式追踪。
    • 为调试微服务间通信提供强大支持。

5. 协议支持

  • Nginx:

    • 主要支持 HTTP/1.x、HTTP/2(作为客户端或服务器)、WebSocket。
    • 支持 TCP/UDP 负载均衡(通过 stream 模块)。
    • 对 gRPC 支持有限(需手动配置)。
  • Envoy:

    • 原生支持 HTTP/1.x、HTTP/2、HTTP/3、gRPC、TCP、UDP、MongoDB、Redis 等多种协议。
    • 对gRPC 和双向流支持更完善,适合现代 RPC 架构。

6. 生态系统与集成

  • Nginx:

    • 成熟的商业产品(Nginx Plus)和开源社区。
    • 广泛用于传统架构,易于集成到现有系统。
    • OpenResty 扩展了其灵活性(Lua 脚本)。
  • Envoy:

    • 是 Istio、Kong Mesh、AWS App Mesh 等服务网格的核心数据平面。
    • 与 Kubernetes、Service Mesh 深度集成。
    • 社区活跃,由 CNCF(云原生计算基金会)托管,属于毕业项目。

7. 性能与资源消耗

  • Nginx:

    • 性能极高,内存占用低,适合高吞吐、低延迟场景。
    • 事件驱动、异步非阻塞架构。
  • Envoy:

    • 性能接近 Nginx,但功能更复杂,资源消耗略高(尤其在边车模式下)。
    • 同样基于 C++ 和事件驱动,优化良好。

总结对比表

特性NginxEnvoy
出现时间 2004 年 2016 年
主要用途 Web 服务器、反向代理、负载均衡 服务网格、边车代理、API 网关
部署模式 集中式 边车(Sidecar)或边缘
配置方式 静态配置(.conf) 动态 xDS API
可观察性 基础日志和指标 内建丰富指标、追踪、日志
协议支持 HTTP, HTTPS, TCP/UDP HTTP/1.x, HTTP/2, HTTP/3, gRPC, TCP 等
服务发现 有限(需脚本或模块) 原生支持(集成 Consul、K8s 等)
微服务支持 一般 优秀(专为云原生设计)
生态系统 成熟,广泛使用 云原生核心组件,CNCF 毕业项目
学习曲线 较低 较高(需理解 xDS、服务网格概念)

何时选择?

  • 选择 Nginx:

    • 需要一个简单、稳定、高性能的 Web 服务器或反向代理。
    • 传统架构,不需要服务网格。
    • 资源有限,追求极致性能。
  • 选择 Envoy:

    • 构建微服务架构,尤其是 Kubernetes 环境。
    • 需要服务网格、高级流量管理(金丝雀发布、熔断、重试等)。
    • 要求强大的可观察性和动态配置能力。

简而言之:Nginx 是“经典全能型选手”,而 Envoy 是“云原生时代的智能代理”。在现代架构中,两者甚至可以共存:Nginx 作为入口网关,Envoy 作为服务网格的数据平面。

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

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

相关文章

基于自适应差分进化算法的MATLAB实现

基于自适应差分进化算法(Adaptive Differential Evolution, ADE)的MATLAB实现一、算法原理 自适应差分进化算法通过动态调整缩放因子(F)和交叉概率(CR)提升全局搜索能力。核心改进包括:参数自适应:根据种群适应…

临沂专业网站建设公司哪家好做网站菜单背景图片

问你一句:「你知道 HTTP/1.1 该如何优化吗?」 我们可以从下面这三种优化思路来优化 HTTP/1.1 协议: 尽量避免发送 HTTP 请求在需要发送 HTTP 请求时,考虑如何减少请求次数减少服务器的 HTTP 响应的数据大小 下面,就针对这三种思路具体看看有哪些优化…

什么网站做推广效果好移动端网站没有icp

当遇到错误提示“vcruntime140.dll已加载,但找不到入口点”时,很多人可能会感到困惑,不知道如何去处理这个问题。不过没有必要紧张,在这里我会为大家详细解释 vcruntime140.dll 文件是什么,并指导大家如何高效地解决 v…

购物网站功能模块设计dw制作asp网站模板下载

题目: 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n] 范围内。除了 a 出现两次,b 缺失 之外,每个整数都恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从 0 开始…

微网站平台微网站建设方案模板南昌企业网站建设公司

ETL服务内容包含: 数据迁移数据合并数据同步数据交换数据联邦数据仓库

电子商务网站建设课后习题答案成都服务器idc托管

文章目录 DFS排列组合问题排列组合问题的标准模板排列LeetCode46全排列题目描述代码 LeetCode47全排列Ⅱ题目描述代码 组合LeetCode77组合题目描述代码 LeetCode39组合总和题目描述代码 LeetCode40组合总和Ⅱ题目描述代码 LeetCode216组合总和Ⅲ题目描述代码 DFS排列组合问题 …

网站广告素材酒店网络营销推广方式

精读文稿 这期我们介绍的这本书叫做《安静》,副标题是《内向性格的竞争力》。本书共有267页,我会用大约25分钟的时间为你讲述书中的精髓。内向性格具备什么样的竞争力?内向性格的人在人际交往和日常生活中似乎总是吃亏,因为他们不…

凡拓数创北京seo专业团队

Hugging Face预训练GPT微调ChatGPT(微调入门!新手友好!) 在实战中,⼤多数情况下都不需要从0开始训练模型,⽽是使⽤“⼤⼚”或者其他研究者开源的已经训练好的⼤模型。 在各种⼤模型开源库中,最…

网站开发项目的规划与设计文档wordpress upload

《C语言程序设计》课程复习及模拟题讲评;《C语言程序设计》试卷各类题目分数分布情况一、选择题 40分(20小题, 每题2分 ) 主要考核基本概念, 词法, 语法和小程序阅读等。二、阅读题 12分(2小题, 每题6分)三、改错题 12分(2小题, 每题6分)四、设计题 36分(4小题, 每题9分) ;启动…

【SPIE出版、主题宽泛、快速检索】2025年可持续发展与数字化转型国际学术会议(SDDT 2025)

#SPIE 出版-ISSN:0277-786X# #高录用稳检索-快至见刊后1个月EI、Scopus检索# #可持续发展、管理、交通、数字化、社会学、计算机方向及其他交叉学科均可投递# 2025年可持续发展与数字化转型国际学术会议(SDDT 2025) 20…

张家界做网站广告制作公司合同

手机为什么这么卡:闪存I/O测试AndroBench软件名称:Androbench软件版本:4.0.1软件大小:1.01MB软件授权:免费适用平台:Android很多朋友买手机只是为了日常使用,卡顿是最影响日常使用的心情的问题了…

Sping Boot 打包排除相关jar依赖包,CMD 启动方式 pom.xml 说明.

Sping Boot 打包排除相关jar依赖包,CMD 启动方式 pom.xml 说明.Posted on 2025-09-23 11:40 且行且思 阅读(0) 评论(0) 收藏 举报根目录pom.xml<build><plugins><plugin><groupId>org.…

langfuse使用的postgresql异机备份和恢复(docker)并进行langfuse版本升级

环境:OS:Centos 7pg:16.4langfuse旧版本:V2.70.1langfuse新版本:V3.110原langfuse(v2)机器:192.168.1.52新langfuse机器(v3):192.168.1.1351.新机器安装pg并启动(非docker)这一步的目的是进行pg的原库备份后,异机恢复,…

国产化Excel处理组件Spire.XLS教程:Java在 Excel 表格中轻松添加下标

当 Excel 表格中包含化学式、统计脚注或科学数据时,往往需要使用下标来表示。但是,Microsoft Excel 自带的下标功能操作比较繁琐,而且也不支持批量应用,手动操作通常需要花费大量的时间。 基于此,本篇指南将介绍如…

tips图解复杂数组、指针声明

顺转法(顺时针旋转)带你带你看复杂数组和指针 int (*func_ptr_arr[5])();int* ((ptr_to_func)())();int ((arr[2])())[10];int (((*func_returning_ptr)())[4])();int (*((ptr_to_func2)())[2][3])();int* (**(*ptr…

北京市保障房建设投资中心网站瘫痪微信网页设计总结

介于直接使用源码编译安装 QT 耗时较长&#xff0c;而且需要手动编写脚本进行编译&#xff0c;难度较大&#xff0c;这里选择直接以图形化界面的方式安装 QT 。 目录 1、下载 QT 安装包 2、安装 QT 3、添加环境变量 4、cmake 引入 QT 库 5、Failed to find “GL/gl.h“ in…

网站免备案阜新市项目建设网站

EAK厚膜高功率片式电阻器和氮化铝片式端接非常适合大多数需要在小尺寸封装中实现高导热性的应用。AlN 是 BeO 的理想替代品&#xff0c;具有高功耗且对环境或健康无危害。厚膜技术以非常实惠的价格提供稳定的电阻元件。 高稳定性厚膜电阻元件 AlN衬底材料 标准电阻范围为 10Ω…

成都设计网站建设服饰网站建设规划书

服务器数据恢复环境&#xff1a; 服务器面板上的硬盘指示灯显示黄色是一种警告&#xff0c;提示指示灯对应的服务器硬盘已经被服务器识别出存在故障&#xff0c;硬盘即将下线。如果出现这种情况&#xff0c;建议服务器管理员/运维人员及时用完好的硬盘替换显示黄色指示灯对应的…

专业的网站设计制作小学网站asp

一、引言 在工作的时候我们有时候会自己创建项目Demo来实现一些功能&#xff0c;但是又不想把自己的Demo代码放到公司的仓库代码平台&#xff08;gitee&#xff09;中管理&#xff0c;于是就是想自己放到自己的Gitee中管理&#xff0c;于是就需要配置Git多用户。 本文将配置分别…

北滘 网站建设定制网站对公司有什么好处

由于各种原因&#xff0c;行业供应链的数字化转型可能充满挑战。然而&#xff0c;最根本的原因之一是供应链本身固有的复杂性和碎片化。以下是造成这一困难的一些关键因素&#xff1a; 1.缺乏标准化&#xff1a;供应链通常涉及多个组织、系统和流程&#xff0c;这些组织、系统…