端口要求

防火墙的管理需求不仅限于虚拟主机;虚拟机和物理主机防火墙都必须允许组件相互通信所需的端口的流量。

端口图

下图显示了单个数据中心和多个数据中心配置的端口要求:

单个数据中心

下图显示了单个数据中心配置中每个 Edge 组件的端口要求:

单数据中心配置中每个 Edge 组件的端口要求

此图表的注意事项:

  • 前缀为“M”的端口是用于管理组件的端口,必须在组件上打开,以便管理服务器访问。
  • Edge 界面需要通过 API 代理公开的端口访问路由器,以支持跟踪记录工具中的发送按钮。
  • 可以将对 JMX 端口的访问配置为需要用户名/密码。如需了解详情,请参阅如何监控。
  • 您可以选择为某些连接配置 TLS/SSL 访问权限,这些连接可以使用不同的端口。如需了解详情,请参阅 TLS/SSL。
  • 您可以将管理服务器和 Edge 界面配置为通过外部 SMTP 服务器发送电子邮件。如果这样做,您必须确保管理服务器和界面可以访问 SMTP 服务器上的必要端口(未显示)。对于非 TLS SMTP,端口号通常为 25。对于启用了 TLS 的 SMTP,通常为 465,但请咨询您的 SMTP 提供商。

多个数据中心

如果您安装具有两个数据中心的 12 节点集群配置,请确保两个数据中心内的节点可以通过如下所示的端口进行通信:

12 节点集群配置中每个节点的端口要求

请注意:

  • 所有管理服务器都必须能够访问所有其他数据中心内的所有 Cassandra 节点。
  • 所有数据中心内的所有消息处理器都必须能够通过端口 4528 相互访问。
  • Management Server 必须能够通过端口 8082 访问所有消息处理器。
  • 所有管理服务器和所有 Qpid 节点都必须能够访问所有其他数据中心内的 Postgres。
  • 出于安全原因,除了上面显示的端口以及您自己的网络要求所需的任何其他端口之外,数据中心之间不应打开其他端口。

默认情况下,组件之间的通信不加密。您可以通过安装 Apigee mTLS 来添加加密。如需了解详情,请参阅 Apigee mTLS 简介。

携号转网详细信息

下表按 Edge 组件介绍了需要在防火墙中打开的端口:

组件 端口 说明
标准 HTTP 端口 80、443 HTTP 以及您用于虚拟主机的任何其他端口
Apigee SSO 9099 来自外部 IDP、管理服务器和浏览器的连接,用于身份验证。
Cassandra 7000、9042、9160 用于 Cassandra 节点之间通信以及供其他 Edge 组件访问的 Apache Cassandra 端口。
7199 JMX 端口。必须开放,以便管理服务器访问。
LDAP 10389 OpenLDAP
管理服务器 1099 JMX 端口
4526 用于分布式缓存和管理调用的端口。此端口可配置。
5636 用于接收变现提交通知的端口。
8080 Edge Management API 调用的端口。以下组件需要访问管理服务器上的端口 8080:路由器、消息处理器、界面、Postgres、Apigee SSO(如果已启用)和 Qpid。
管理界面 9000 用于通过浏览器访问管理界面的端口
消息处理器 1101 JMX 端口
4528 用于消息处理器之间的分布式缓存和管理调用,以及来自路由器和管理服务器的通信。

Message Processor 必须打开端口 4528 作为其管理端口。如果您有多个消息处理器,则它们必须能够通过端口 4528 相互访问(如上图中消息处理器上端口 4528 的循环箭头所示)。如果您有多个数据中心,则所有数据中心内的所有消息处理器都必须能够访问该端口。

8082

消息处理器的默认管理端口,必须在组件上打开,以便管理服务器访问。

如果您在路由器和消息处理器之间配置 TLS/SSL,则路由器会使用该密钥库对消息处理器进行健康检查。

只有在路由器和消息处理器之间配置 TLS/SSL 时,消息处理器上的端口 8082 才必须打开,以便路由器访问。如果您未在路由器和消息处理器之间配置 TLS/SSL(默认配置),则仍必须在消息处理器上打开端口 8082 才能管理组件,但路由器不需要访问该端口。

8443 在路由器和消息处理器之间启用 TLS 后,您必须在消息处理器上打开端口 8443,以便路由器访问。
8998 用于接收来自路由器的通信的消息处理器端口
Postgres 22 如果将两个 Postgres 节点配置为使用主备复制,则必须在每个节点上打开端口 22 以进行 SSH 访问。
1103 JMX 端口
4530 用于分布式缓存和管理调用
5432 用于从 Qpid/管理服务器到 Postgres 的通信
8084 Postgres 服务器上的默认管理端口;必须在组件上打开,以便管理服务器访问。
Qpid 1102 JMX 端口
4529 用于分布式缓存和管理调用
5672
  • 单个数据中心:用于将分析数据从路由器和消息处理器发送到 Qpid。
  • 多个数据中心:用于不同数据中心内的 Qpid 节点之间的通信。

还用于同一节点上的 Qpid 服务器和代理组件之间的通信。在具有多个 Qpid 节点的拓扑中,服务器必须能够连接到端口 5672 上的所有代理。

8083 Qpid 服务器上的默认管理端口,必须在组件上打开,以便管理服务器访问。
路由器 4527 用于分布式缓存和管理调用。

路由器必须打开端口 4527 作为其管理端口。如果您有多个路由器,则它们必须能够通过端口 4527 相互访问(如上图中路由器上端口 4527 的循环箭头所示)。

虽然这不是必需的,但您可以在路由器上打开端口 4527,以供任何消息处理器访问。否则,您可能会在消息处理器日志文件中看到出错提示。

8081 路由器的默认管理端口,必须在组件上打开,以便管理服务器访问。
15999

健康检查端口。负载均衡器使用此端口来确定路由器是否可用。

为了获取路由器的状态,负载均衡器会向路由器上的端口 15999 发出请求:

curl -v http://routerIP:15999/v1/servers/self/reachable

如果路由器可访问,则请求会返回 HTTP 200。

59001 apigee-validate 实用程序用于测试 Edge 安装的端口。 此实用程序需要访问路由器上的端口 59001。如需详细了解端口 59001,请参阅测试安装。
SmartDocs 59002 Edge 路由器上发送 SmartDocs 页面请求的端口。
ZooKeeper 2181 由管理服务器、路由器、消息处理器等其他组件使用
2888、3888 由 ZooKeeper 在内部用于 ZooKeeper 集群(称为 ZooKeeper 集合)通信

下表按数字顺序列出了相同的端口,以及来源和目标组件:

端口号 用途 来源组件 目标组件
virtual_host_port HTTP 以及您用于虚拟主机 API 调用流量的任何其他端口。最常用的是端口 80 和 443;消息路由器可以终止 TLS/SSL 连接。 外部客户端(或负载均衡器) 消息路由器上的监听器
1099 至 1103 JMX 管理 JMX 客户端 Management Server (1099)
Message Processor (1101)
Qpid Server (1102)
Postgres Server (1103)
2181 Zookeeper 客户端通信 管理服务器
路由器
消息处理器
Qpid 服务器
Postgres 服务器
ZooKeeper
2888 和 3888 Zookeeper 节点间管理 ZooKeeper ZooKeeper
4526 RPC 管理端口 管理服务器 管理服务器
4527 用于分布式缓存和管理调用以及路由器之间通信的 RPC 管理端口 管理服务器
路由器
路由器
4528 用于消息处理器之间的分布式缓存调用,以及来自路由器的通信 管理服务器
路由器
消息处理器
消息处理器
4529 用于分布式缓存和管理调用的 RPC 管理端口 管理服务器 Qpid 服务器
4530 用于分布式缓存和管理调用的 RPC 管理端口 管理服务器 Postgres 服务器
5432 Postgres 客户端 Qpid 服务器 Postgres
5636 创收 外部 JMS 组件 管理服务器
5672
  • 单个数据中心:用于将分析数据从路由器和消息处理器发送到 Qpid。
  • 多个数据中心:用于不同数据中心内的 Qpid 节点之间的通信。

还用于同一节点上的 Qpid 服务器和代理组件之间的通信。在具有多个 Qpid 节点的拓扑中,服务器必须能够连接到端口 5672 上的所有代理。

Qpid 服务器 Qpid 服务器
7000 Cassandra 节点间通信 Cassandra 其他 Cassandra 节点
7199 JMX 管理。必须在 Cassandra 节点上打开,以便管理服务器访问。 JMX 客户端 Cassandra
8080 Management API 端口 Management API 客户端 管理服务器
8081 至 8084

组件 API 端口,用于直接向各个组件发出 API 请求。 每个组件都会打开一个不同的端口;所使用的确切端口取决于配置,但必须在组件上打开,以便管理服务器访问

Management API 客户端 路由器 (8081)
消息处理器 (8082)
Qpid 服务器 (8083)
Postgres 服务器 (8084)
8443 启用 TLS 时路由器与消息处理器之间的通信 路由器 消息处理器
8998 路由器与消息处理器之间的通信 路由器 消息处理器
9000 默认 Edge 管理界面端口 浏览器 管理界面服务器
9042 CQL 原生传输 路由器
消息处理器
管理服务器
Cassandra
9099 外部 IDP 身份验证 IDP、浏览器和管理服务器 Apigee SSO
9160 Cassandra thrift 客户端 路由器
消息处理器
管理服务器
Cassandra
10389 LDAP 端口 管理服务器 OpenLDAP
15999 健康检查端口。负载均衡器使用此端口来确定路由器是否可用。 负载均衡器 路由器
59001 apigee-validate 实用程序用于测试 Edge 安装的端口 apigee-validate 路由器
59002 发送 SmartDocs 页面请求的路由器端口 SmartDocs 路由器

消息处理器会保持与 Cassandra 的专用连接池处于打开状态,该连接池配置为永不超时。当防火墙位于消息处理器和 Cassandra 服务器之间时,防火墙可能会导致连接超时。但是,消息处理器并非设计用于重新建立与 Cassandra 的连接。

为防止出现这种情况,Apigee 建议将 Cassandra 服务器、消息处理器和路由器置于同一子网中,以便在部署这些组件时不涉及防火墙。

如果路由器和消息处理器之间存在防火墙,并且设置了空闲 TCP 超时,我们建议您执行以下操作:

  1. 在 Linux 操作系统的 sysctl 设置中设置 net.ipv4.tcp_keepalive_time = 1800,其中 1800 应低于防火墙空闲 TCP 超时。此设置应使连接保持已建立状态,以便防火墙不会断开连接。
  2. 在所有消息处理器上,修改 /opt/apigee/customer/application/message-processor.properties 以添加以下属性。如果该文件不存在,请创建它。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  3. 重启消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. 在所有路由器上,修改 /opt/apigee/customer/application/router.properties 以添加以下属性。如果该文件不存在,请创建它。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  5. 重启路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart