管理防火墙的需求不仅限于虚拟主机;虚拟机和物理主机 防火墙都必须允许流量通过组件之间通信所需的端口。
端口图
下图显示了单数据中心和多 数据中心配置的端口要求:
单数据中心
下图显示了单数据 中心配置中每个 Edge 组件的端口要求:

关于此图的说明:
- 以“M”为前缀的端口是用于管理组件的端口,必须在组件上打开,以便管理服务器访问。
- New Edge 界面需要访问路由器(通过 API 代理公开的端口),以支持 跟踪工具中的 发送 按钮。
- 您可以将 JMX 端口的访问权限配置为需要用户名/密码。如需了解详情,请参阅 如何监控。
- 您可以选择为某些连接配置 TLS/SSL 访问权限,这些连接可以使用 不同的端口。如需了解详情,请参阅 TLS/SSL。
- 您可以将管理服务器和 New Edge 界面配置为通过外部 SMTP 服务器发送电子邮件。如果这样做,您必须确保管理服务器和 New Edge 界面可以访问 SMTP 服务器上的必要 端口(未显示)。对于非 TLS SMTP,端口号通常为 25。对于 启用 TLS 的 SMTP,端口号通常为 465,但请与您的 SMTP 提供商核实。
多数据中心
如果您安装了包含两个数据中心的 12 节点 集群配置,请确保这两个数据中心中的节点 可以通过以下端口进行通信:

请注意:
- 所有管理服务器都必须能够访问所有其他数据 中心中的所有 Cassandra 节点。
- 所有数据中心中的所有消息处理器都必须能够通过 端口 4528 相互访问。
- 管理服务器必须能够通过端口 8082 访问所有消息处理器。
- 所有管理服务器和所有 Qpid 节点都必须能够访问所有其他 数据中心中的 Postgres。
- 出于安全考虑,除了上述端口以及您自己的网络要求所需的任何其他端口之外,数据中心之间不应打开任何其他端口。
默认情况下,组件之间的通信不会加密。您可以通过 安装 Apigee mTLS 来添加加密。如需了解详情,请参阅 Apigee mTLS 简介。
端口详细信息
下表介绍了需要在防火墙中打开的端口(按 Edge 组件列出):
| 组件 | 端口 | 说明 |
|---|---|---|
| 标准 HTTP 端口 | 80、443 | HTTP 以及您用于虚拟主机的任何其他端口 |
| Cassandra | 7000、9042 | Apache Cassandra 端口,用于 Cassandra 节点之间的通信以及 其他 Edge 组件的访问。 |
| 7199 | JMX 端口。必须打开,以便管理服务器访问。 | |
| New Edge 界面 | 3001 | 用于浏览器访问 New Edge 界面 (edge-management-ui) 的默认端口 |
| LDAP | 10389 | SymasLDAP |
| 管理服务器 | 1099 | JMX 端口 |
| 4526 | 用于分布式缓存和管理调用的端口。此端口可配置。 | |
| 5636 | 用于创收提交通知的端口。 | |
| 8080 | 用于 Edge Management API 调用的端口。以下组件需要访问管理服务器上的端口 8080:路由器、消息处理器、New Edge 界面、Postgres、 和 Qpid。 | |
| 消息处理器 | 1101 | JMX 端口 |
| 4528 | 用于消息处理器之间的分布式缓存和管理调用,以及
来自路由器和管理服务器的通信。
消息处理器必须将端口 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 节点的拓扑中,服务器必须能够通过端口 5672 连接到所有 代理。 |
|
| 8083 | Qpid 服务器上的默认管理端口,必须在组件上打开,以便 管理服务器访问。 | |
| 8090 | Qpid 代理的默认端口;必须打开,以便访问代理的 管理控制台或 Management API 进行监控。 | |
| 路由器 | 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 客户端 | 管理服务器 (1099) 消息处理器 (1101) Qpid 服务器 (1102) Postgres 服务器 (1103) |
| 2181 | Zookeeper 客户端通信 | 管理服务器 路由器 消息处理器 Qpid 服务器 Postgres 服务器 |
Zookeeper |
| 2888 和 3888 | Zookeeper 节点间管理 | Zookeeper | Zookeeper |
| 3001 | 默认 New Edge 界面端口 | 浏览器 | New Edge 界面 (edge-management-ui) |
| 4526 | RPC 管理端口 | 管理服务器 | 管理服务器 |
| 4527 | 用于分布式缓存和管理调用以及路由器之间通信的 RPC 管理端口 | 管理服务器 路由器 |
路由器 |
| 4528 | 用于消息处理器之间的分布式缓存调用,以及来自路由器的通信 | 管理服务器 路由器 消息处理器 |
消息处理器 |
| 4529 | 用于分布式缓存和管理调用的 RPC 管理端口 | 管理服务器 | Qpid 服务器 |
| 4530 | 用于分布式缓存和管理调用的 RPC 管理端口 | 管理服务器 | Postgres 服务器 |
| 5432 | Postgres 客户端 | Qpid 服务器 | Postgres |
| 5636 | 创收 | 外部 JMS 组件 | 管理服务器 |
| 5672 |
还用于同一节点上的 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) |
| 8090 | Qpid 代理的默认管理端口,用于管理和监控队列。 | 浏览器或 API 客户端 | Qpid 代理 (apigee-qpidd) |
| 8443 | 启用 TLS 时路由器和消息处理器之间的通信 | 路由器 | 消息处理器 |
| 8998 | 路由器和消息处理器之间的通信 | 路由器 | 消息处理器 |
| 9042 | CQL 原生传输 | 路由器 消息处理器 管理服务器 |
Cassandra |
| 10389 | LDAP 端口 | 管理服务器 | SymasLDAP |
| 15999 | 健康检查端口。负载均衡器使用此端口确定路由器是否 可用。 | 负载均衡器 | 路由器 |
| 59001 | apigee-validate 实用程序用于测试 Edge 安装的端口 |
apigee-validate | 路由器 |
| 59002 | 用于发送 SmartDocs 页面请求的路由器端口 | SmartDocs | 路由器 |
消息处理器会保持与 Cassandra 的专用连接池处于打开状态,该连接池配置为 永不超时。当消息处理器和 Cassandra 服务器之间存在防火墙时,该 防火墙可能会使连接超时。但是,消息处理器并非旨在 重新建立与 Cassandra 的连接。
为避免这种情况,Apigee 建议将 Cassandra 服务器、消息处理器和 路由器放在同一子网中,这样防火墙就不会参与这些 组件的部署。
如果路由器和消息处理器之间存在防火墙,并且设置了空闲 TCP 超时, 我们建议您执行以下操作:
- 在 Linux 操作系统上的 sysctl 设置中设置
net.ipv4.tcp_keepalive_time = 1800,其中 1800 应低于防火墙空闲 tcp 超时。此设置应使 连接保持已建立状态,以便防火墙不会断开连接。 - 在所有消息处理器上,修改
/opt/apigee/customer/application/message-processor.properties以添加以下属性。如果该文件不存在,请创建它。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在所有路由器上,修改
/opt/apigee/customer/application/router.properties以添加以下属性。如果该文件不存在,请创建它。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart