Higress 入门教程 - 基础篇(2025 年)

前言

Higress 是基于阿里内部的 Envoy Gateway 实践沉淀、以开源 Istio + Envoy 为核心构建的下一代云原生网关,实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力,深度集成 Dubbo、Nacos、Sentinel 等微服务技术栈,能够帮助用户极大的降低网关的部署及运维成本。在标准上全面支持 Ingress 与 Gateway API,积极拥抱云原生下的标准 API 规范;同时,Higress Controller 也支持 Nginx Ingress 平滑迁移,可以帮助用户零成本快速迁移到 Higress。

学习资源

网关的分类

行业中通常把网关分为两个大类:流量网关与业务网关,流量网关主要提供全局性的、与后端业务无关的策略配置,例如阿里内部的的统一接入网关 Tengine 就是典型的流量网关;业务网关顾名思义主要提供独立业务域级别的、与后端业务紧耦合策略配置,随着应用架构模式从单体演进到现在的微服务,业务网关也有了新的叫法 - 微服务网关。

在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代,Ingress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能。作为面向南北向的公网网关,使用 Waf 防护异常流量是很常规的需求,而且随着互联网环境变得越来越复杂,用户对防护的诉求是持续增强的,常规做法是将流量先接入 Waf 安全网关,过滤后再将流量转发给流量网关,最后到达微服务网关;Higress 希望通过内置 Waf 模块,使得用户的请求链接只经过 Higress 就可以同时完成 Waf 防护、流量分发、微服务治理,既可以降低链路 RT,也可以降低网关的运维复杂度。因此 Higress 实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力。

Higress 简介

Higress 是什么

  • Higress 是一款云原生 API 网关,内核基于 Istio 和 Envoy,可以用 Go/Rust/JS 等编写 Wasm 插件,提供了数十个现成的通用插件,以及开箱即用的控制台。
  • Higress 在阿里内部为解决 Tengine Reload 对长连接业务有损,以及 gRPC/Dubbo 负载均衡能力不足而诞生。
  • 阿里云基于 Higress 构建了云原生 API 网关产品,为大量企业客户提供 99.99% 的网关高可用保障服务能力。
  • Higress 基于 AI 网关能力,支撑了通义千问 APP、百炼大模型 API、机器学习 PAI 平台等 AI 业务。同时服务国内头部的 AIGC 企业(如零一万物),以及 AI 产品(如 FastGPT)。

什么是 AI 网关

AI Gateway = AI Native API GatewayAI,网关的本质依然是 API 网关,AI 原生的意义在于,在这样的 API 网关里,AI 是一等公民。API 研发、API 供应、API 消费、以及 API 观测都基于 AI 场景下的需求,演进出全新的能力。

这是传统 API 网关的功能范畴,AI 场景下仍然有其通用价值:

在 AI 场景下,基于 Higress 可以将 API 网关的功能范畴进一步扩展:

Higress 核心优势

  • 生产等级

    • 脱胎于阿里巴巴多年生产验证的内部产品,支持每秒请求量达数十万级的大规模场景。
    • 彻底摆脱 Nginx Reload 引起的流量抖动,配置变更毫秒级生效且业务无感。对 AI 业务等长连接场景特别友好。
  • 便于扩展

    • 提供丰富的官方插件库,涵盖 AI、流量管理、安全防护等常用功能,满足 90% 以上的业务场景需求。
    • 主打 Wasm 插件扩展,通过沙箱隔离确保内存安全,支持多种编程语言,允许插件版本独立升级,实现流量无损热更新网关逻辑。
  • 安全易用

    • 基于 Ingress API 和 Gateway API 标准,提供开箱即用的 UI 控制台,WAF 防护插件、IP/Cookie CC 防护插件开箱即用。
    • 支持对接 Let’s Encrypt 自动签发和续签免费证书,并且可以脱离 K8s 部署,一行 Docker 命令即可启动,方便个人开发者使用。
  • 流式处理

    • 支持真正的完全流式处理请求 / 响应 Body,Wasm 插件很方便地自定义处理 SSE(Server-Sent Events)等流式协议的报文。
    • 在 AI 业务等大带宽场景下,可以显著降低内存开销。

Higress 使用场景

AI 网关

Higress 能够用统一的协议对接国内外所有 LLM 模型厂商,同时具备丰富的 AI 可观测、多模型负载均衡 / Fallback、AI Token 流控、AI 缓存等能力:

K8s Ingress 网关

Higress 可以作为 K8s 集群的 Ingress 入口网关,并且兼容了大量 K8s Nginx Ingress 的注解,可以从 K8s Nginx Ingress 快速平滑迁移到 Higress。支持 Gateway API 标准,支持用户从 Ingress API 平滑迁移到 Gateway API。相比 ingress-nginx,资源开销大幅下降,路由变更生效速度有十倍提升。

微服务网关

Higress 可以作为微服务网关,能够对接多种类型的注册中心发现服务配置路由,例如 Nacos、ZooKeeper、Consul、Eureka 等。并且深度集成了 Dubbo、Nacos、Sentinel 等微服务技术栈,基于 Envoy C++ 网关内核的出色性能,相比传统 Java 类微服务网关,可以显著降低资源使用率,减少成本。

安全防护网关

Higress 可以作为安全防护网关,提供 WAF 的能力,并且支持多种认证鉴权策略,例如 key-auth、hmac-auth、jwt-auth、basic-auth、oidc 等。

Higress 整体架构

  • 整体上 Higress 网关由控制面组件 Higress-Controller 和数据面组件 Higress-Gateway 组成。Higress-Gateway 负责承载数据流量,Higress-Controller 负责管理配置下发。
  • 数据面组件 Higress-Gateway 是基于 Envoy 开发的网关组件,负责接收和处理流量,支持 HTTP/1.1、HTTP/2、gRPC 等协议,支持 TLS、mTLS、WAF、限流、熔断、重试、负载均衡、路由、转发、重定向、跨域等功能,也就是说真正的流量处理都是在 Higress-Gateway 中完成的。
  • 控制面组件 Higress-Controller 负责管理配置下发,支持 Ingress API、Gateway API、Istio API,支持多种注册中心,支持多种认证鉴权策略,支持多种插件扩展机制,支持多种 CRD 实现流量精细化管理,也就是说所有的配置都是通过 Higress-Controller 下发到 Higress-Gateway 中的。

Higress 开发语言

Higress 主要是基于 Envoy Proxy 开发的,核心是用 C++(Envoy 内核)和 Go(控制面、插件、扩展部分)组合实现的。

组件语言作用
Envoy Proxy(数据面)C++Higress 的流量转发核心,负责 HTTP/TCP 代理、路由、负载均衡,使用 Envoy 做高性能转发。
控制面 / 插件 / 扩展逻辑 GoHigress 提供了 Ingress、Gateway API 的控制逻辑、配置管理、Wasm 插件管理等,这部分主要用 Go 实现。
Wasm 插件(可选)WebAssembly(多语言)Higress 支持流量治理的 Wasm 扩展,用户可以用 Rust、C++、AssemblyScript 编写。

为什么采用这种语言组合?

  • C++(Envoy 内核):高性能、云原生友好,成熟的代理框架。
  • Go(控制面、插件):易于集成 Kubernetes,开发效率高,社区有大量的 Ingress/Gateway 生态。
  • Wasm(扩展能力):支持动态扩展,不用重启服务。

参考资料