跳到主要内容
版本:1.4.0

端口参考

使用本参考为 AISIX 网关和 AISIX Cloud 控制面组件规划防火墙规则、安全组、Kubernetes Service 和负载均衡器。

下表会区分默认值、必填值和示例值。如果已部署的启动配置、Kubernetes Service 或生成的 AISIX Cloud 安装说明与示例不同,请以已部署环境中的值为准。

任何部署都应先查看网关端口。如果网关连接到 AISIX Cloud,还需要查看 AISIX Cloud 网关连接。对于本地部署,还需要查看本地部署控制面端口。

AISIX 网关端口​

每个 AISIX 网关都通过代理监听器提供调用方流量。使用 etcd 或 AISIX Cloud 作为资源来源时,网关只有在应用第一个配置之后才会绑定该监听器,在那之前端口处于关闭状态,参见启动与第一个配置。开源 AISIX 网关还可以绑定 Admin 监听器;连接到 AISIX Cloud 的网关不会绑定该监听器。出站要求取决于网关的配置来源和已配置的运行时目标。

监听器或连接配置地址或端口行为流量和作用暴露范围
代理监听器proxy.addr,多个监听器用 proxy.listeners必填;示例配置使用 0.0.0.0:3000。proxy.listeners 会用一组显式的监听地址取代它。使用 etcd 或 AISIX Cloud 作为资源来源时,网关应用第一个配置之前不会绑定。面向调用方的 AI API,以及 /livez 和 /readyz 健康检查路由的入站流量。仅暴露给预期调用方,或暴露给网关前置的入口层。
Admin 监听器admin.addr默认为 127.0.0.1:0,其中端口 0 会让操作系统选择一个临时端口;示例配置使用 127.0.0.1:3001。开源网关的入站流量,用于只读网关 Admin API、其 OpenAPI 文档和 Scalar UI、Playground 以及健康检查路由。保持私有或绑定到回环地址。经过身份认证的资源读取可能返回敏感配置,而健康检查和 OpenAPI 发现路由无需身份认证。连接到 AISIX Cloud 时不会绑定此监听器。
指标和状态监听器observability.metrics.prometheus.addr启用 Prometheus 指标时,默认为 0.0.0.0:9090。提供已配置 Prometheus 路径以及 /status/config、/status/ready 和 /status/models 的入站流量。仅对 Prometheus 和运维系统开放。这些路由不需要应用身份认证。
etcdetcd.endpoints无默认值;外部 etcd 通常使用客户端端口 2379。从 etcd 加载动态资源的开源网关发出的出站流量。仅对 AISIX 和管理网关配置的系统开放 etcd。使用资源文件时不使用此连接。
AISIX Cloud 管理连接managed.cp_base_url无默认值;未显式指定端口的 HTTPS URL 使用 443。用于注册、心跳、遥测、预算检查和证书轮换的出站流量。允许网关向配置的端点发起连接。控制面不会主动连接网关主机。
AISIX Cloud 配置存储managed.cp_etcd_endpoint未设置时,网关使用 managed.cp_base_url 中的主机和端口。到可选独立 AISIX Cloud 配置存储的出站连接。只有生成的安装配置提供该端点时才允许配置的端口。

运行时目标没有统一的默认端口。构建出站白名单时,请允许网关启动配置或资源配置中指定的每个端点,包括模型服务提供方、安全护栏服务、MCP 服务器、A2A Agent、OIDC 签发者、Redis 后端和遥测导出器。

配置 AISIX 网关端口​

启动配置定义网关监听器端口;对于使用 etcd 的开源网关,还会定义外部 etcd 端点。连接到 AISIX Cloud 的网关应使用生成的安装说明中的管理端点;请参阅 AISIX Cloud 网关连接。

使用 proxy.addr 设置代理监听端口,它声明的是一个监听器:

proxy:
addr: "0.0.0.0:3000"

如需声明多个代理监听器,请改用 proxy.listeners,每个监听器有各自的端口和各自可选的 TLS。非空列表就是代理监听器的完整集合:只有这些地址会被绑定,proxy.addr 不会被绑定,并且 proxy.tls 必须不存在:

proxy:
addr: "0.0.0.0:3000"
listeners:
- addr: "0.0.0.0:3443"
tls:
cert_file: "/etc/aisix/tls/proxy.crt"
key_file: "/etc/aisix/tls/proxy.key"
- addr: "0.0.0.0:3000"

每个监听器提供相同的路由,包括 /livez 和 /readyz 健康检查路由,因此请为列表中的每个地址规划防火墙规则。参阅同时提供 HTTPS 和 HTTP。

启动配置必须包含代理监听地址;即使由 proxy.listeners 指定监听器集合,它依然是必填字段。无论使用哪种资源来源,网关将要绑定的每个地址都会在启动阶段检查——网关会先绑定一次随即释放,并加载为它配置的 TLS 证书材料——因此此时端口已被占用,或证书文件不可读,都是启动失败,而不会推迟到后面某个时刻。等待期间网关并不持有该地址,因此如果端口在等待期间被别的程序占用,仍会在真正绑定时失败。监听器本身在使用资源文件时立即绑定,使用 etcd 或 AISIX Cloud 时则只有在应用第一个配置之后才绑定,参见启动与第一个配置。

对于开源网关,admin.enabled 默认为 true。默认的 admin.addr 值 127.0.0.1:0 会在回环地址上选择临时端口,不提供固定的可发现端口。要公开只读网关 Admin API,请将其替换为带固定端口的私有地址或回环地址,并至少配置一个 admin.admin_keys 值。将 admin.enabled 设置为 false 可禁用该监听器。无论这些设置为何,连接到 AISIX Cloud 的网关都不会绑定此监听器。

如需修改专用指标和状态监听器地址,请设置 observability.metrics.prometheus.addr。启用 Prometheus 指标时,该监听器会运行并默认使用 0.0.0.0:9090:

observability:
metrics:
prometheus:
enabled: true
path: "/metrics"
addr: "0.0.0.0:9090"

指标/状态监听器还会提供 /status/config、/status/ready 和 /status/models。这些运维路由无需认证。请将监听器绑定到私有接口,或通过网络策略或防火墙规则限制访问。

对于使用 etcd 的开源网关,请为每个端点配置实际客户端端口:

etcd:
endpoints:
- "https://etcd.internal.example:2379"

当 etcd 连接跨越主机或网络信任边界时,请使用 mTLS。请参阅 TLS 和 mTLS。

AISIX Cloud 网关连接​

网关会主动发起到 AISIX Cloud 的所有管理连接。控制面不会主动连接网关主机,调用方的实时流量也不会经过控制面。

在混合云模式下,控制面由 API7 托管,因此运维人员无需部署控制面服务。请允许每个网关向生成的安装说明中指定的管理端点和配置存储端点建立出站 TCP 连接。不要创建从控制面到网关的入站防火墙规则。

在本地部署模式下,网关通过 mTLS 连接 dp-manager 端点。请确保每个网关主机或集群都能访问该端点。Docker Compose 使用 AISIX_CLOUD_DPMGR_BASE_URL,Helm 使用 api.dpmgrBaseURL 设置网关可访问的地址。控制面会把该地址写入生成的网关安装说明,并使用其主机名签发 dp-manager 服务器证书。

本地部署控制面端口​

在本地部署环境中,浏览器和 Admin API 流量使用的入口与网关管理流量不同。请将控制台内部流量和数据库流量保留在部署网络内。

默认端口组件作用暴露范围
8080cp-api面向浏览器的控制台入口和 AISIX Cloud Admin API。cp-api 会将控制台请求反向代理到内部控制台服务。通过预期的控制面 Origin 暴露。生产环境使用终止 TLS 的反向代理或负载均衡器。
7944dp-manager网关用于注册、配置投递、心跳、遥测和预算检查的 mTLS 端点。HTTPS API 和配置存储协议共享该端口。仅暴露给运行 AISIX 网关的网络。保持到 dp-manager 的端到端 TLS。
3000控制台cp-api 访问的内部控制台服务。它与同样默认使用 3000 的网关代理监听器不同。不要直接公开。
5432PostgreSQLcp-api、dp-manager 和控制台发往数据库的流量。仅对控制面服务和数据库管理员开放。
7946dp-manager 健康检查服务器明文 HTTP /healthz 监听器。默认 Helm 部署将其用于 Kubernetes Probe;Docker Compose 不发布该端口。它不属于 dp-manager Service。保留在 Pod 或容器网络内。不要暴露给网关或运维网络。

控制面出站流量​

部分控制面功能会从 cp-api 发起出站连接。端口来自已配置的目标 URL,而不是固定的 AISIX 默认值。

目标何时需要
已配置的 LLM 端点控制台 Playground 和语义路由测试请求。
已配置的 Webhook 或 Slack 目标投递预算通知。
https://models.dev/api.json 或 AISIX_CLOUD_PRICESYNC_URL在线模型价格同步。随包提供的 Docker Compose 部署默认使用离线快照,不需要此连接。

对于默认拒绝的出站策略,请允许每项已启用功能的目标端口。HTTP 和 HTTPS URL 未指定端口时分别使用 80 和 443。

Docker Compose 端口映射​

Docker Compose 会在主机上发布以下容器端口。更改主机端口绑定不会改变相应的容器端口。

变量默认主机绑定容器端口
API_HOST_PORT80808080
DPM_HOST_PORT79447944
POSTGRES_HOST_PORT127.0.0.1:54325432

默认的 API_HOST_PORT 和 DPM_HOST_PORT 值会绑定主机所有网络接口。要把仅本地使用的部署限制在回环地址,请为值添加 127.0.0.1: 前缀,例如 127.0.0.1:8080。当网关运行在其他主机或集群上时,请在 AISIX_CLOUD_DPMGR_BASE_URL 中设置的主机名和端口上暴露 dp-manager 端点。

控制台只在 Compose 网络内监听端口 3000。它没有主机端口,因为 cp-api 会通过端口 8080 提供控制台。

Helm Service 端口​

默认 Helm Chart 创建 ClusterIP Service。只发布集群外客户端需要访问的 Service。

Helm 配置项默认值使用方
api.service.type, api.service.port, api.service.nodePortClusterIP, 8080, 空通过已配置控制面 Origin 访问的运维人员、浏览器和 Admin API 客户端
dpm.service.type, dpm.service.port, dpm.service.nodePortClusterIP, 7944, 空AISIX 网关
ui.service.type, ui.service.port, ui.service.nodePortClusterIP, 3000, 空集群内的 cp-api
postgresql.primary.service.ports.postgresql5432集群内的控制面服务

对于 API、数据面管理器和 UI Service,只有 Service 类型为 NodePort 时,Chart 才会使用已配置的 nodePort。将该值留空可让 Kubernetes 动态分配端口。对于其他 Service 类型,Chart 会忽略该值。

直接连接 API 和 UI NodePort 时使用明文 HTTP。生产环境访问时,请在前方部署终止 TLS 的代理或负载均衡器。运维人员通常通过 cp-api 打开控制台,由 cp-api 将控制台流量代理到 UI Service。如果同源代理直接连接 UI NodePort,请将控制台页面路由到 UI Service,并将 /api/* 请求路由到 cp-api。

当 cp-api 使用 NodePort 时,请将 api.publicBaseURL 设为该端口上外部可访问的源站,或前置 TLS 反向代理的源站。如果网关在集群外运行,请提供通往 dp-manager Service 且能保留其 mTLS 连接的 TCP 路径,然后把 api.dpmgrBaseURL 设置为外部可访问的 HTTPS 端点。端口 7946 上的 dp-manager 健康检查监听器仍保留在 Pod 内部,不属于此 Service。

有关所有本地部署配置变量和 Helm 配置项,请参阅本地部署配置参考。