管理防火牆不只是虛擬主機的需要,VM 和實體主機防火牆都必須允許元件彼此通訊所需的通訊埠流量。
通訊埠圖表
下圖顯示單一資料中心和多個資料中心設定的通訊埠需求:
單一資料中心
下圖顯示單一資料中心設定中,各 Edge 元件的通訊埠需求:

圖表附註:
- 前置字元為「M」的通訊埠用於管理元件,且必須在元件上開啟,以便管理伺服器存取。
- 新版 Edge UI 必須透過 API Proxy 公開的通訊埠存取路由器,才能支援追蹤工具中的「Send」(傳送) 按鈕。
- 您可以設定 JMX 連接埠的存取權,要求使用者提供使用者名稱/密碼。詳情請參閱「如何監控」。
- 您可以視需要為特定連線設定 TLS/SSL 存取權,這些連線可以使用不同的通訊埠。詳情請參閱「TLS/SSL」。
- 您可以設定管理伺服器和新版 Edge UI,透過外部 SMTP 伺服器傳送電子郵件。如果這麼做,您必須確保管理伺服器和新版 Edge UI 可存取 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 通訊埠。必須開放管理伺服器存取。 | |
| 新版 Edge UI | 3001 | 瀏覽器存取新版 Edge UI 的預設通訊埠 (edge-management-ui) |
| LDAP | 10389 | SymasLDAP |
| 管理伺服器 | 1099 | JMX 通訊埠 |
| 4526 | 用於分散式快取和管理呼叫的通訊埠。這個通訊埠可以設定。 | |
| 5636 | 營利承諾通知的通訊埠。 | |
| 8080 | 用於 Edge Management API 呼叫的通訊埠。這些元件需要存取管理伺服器上的通訊埠 8080:路由器、訊息處理器、新版 Edge UI、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 用戶端 | Management Server (1099) 訊息處理器 (1101) Qpid Server (1102) Postgres Server (1103) |
| 2181 | Zookeeper 用戶端通訊 | 管理伺服器 路由器 訊息處理器 Qpid 伺服器 Postgres 伺服器 |
Zookeeper |
| 2888 和 3888 | Zookeeper 節點間管理 | Zookeeper | Zookeeper |
| 3001 | 預設新版 Edge UI 通訊埠 | 瀏覽器 | 新版 Edge UI (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 Broker (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 OS 的 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