跳至主要內容
CDelivery

網域與路由

把網域映射到應用程式連接埠,並使用路徑、請求頭或 Cookie 條件分配請求。

網域路由由應用程式設定管理,需要 Operator 或 Admin。管理員應先啟用 Pingress,並準備可存取的 HTTP/HTTPS 入口。

設定 Pingress

先確認應用程式在預期容器連接埠提供服務,再設定入口。

管理員打開 Pingress,選擇可用版本及部署位置,可以指定伺服器或伺服器標籤。目標伺服器需滿足網路條件,HTTP/HTTPS 入口通常使用 TCP 80 和 443。

儲存後確認實例數量和執行狀態。選擇標籤時,應把 DNS 或前置負載均衡指向實際執行 Pingress 的可達伺服器;給一台伺服器加標籤不會自動修改外部 DNS。

應用程式網域路由由 Operator 或 Admin 在應用程式設定中管理;Pingress 組件和憑證管理需要 Admin。

網域記錄、應用程式路由和憑證是分別管理的對象。只添加 DNS 不會自動建立應用程式路由,只打開 HTTPS 開關也不代表憑證已簽發。

綁定一個網域

  1. 在 DNS 服務商處將 app.example.com 指向 Pingress 的入口地址。
  2. 打開應用程式設定,添加網域規則。
  3. 填寫網域及應用程式實際監聽的容器連接埠,例如 80。
  4. 暫不添加其他條件,先建立簡單入口。
  5. HTTPS 預設勾選;需要 HTTP 時可取消勾選。使用 HTTPS 時啟用自動憑證或上傳自訂憑證。
  6. 儲存後存取該網域,確認命中正確應用程式;使用 HTTPS 時同時核對憑證網域和業務回應。

網域字段不包含 http://、https://、連接埠或路徑。當前網域輸入使用 ASCII 網域;國際化網域應使用對應的 ASCII 表示。不要將 IP 地址或通配符當作普通網域填寫。

條件路由

條件 用途
路徑前綴 將某個路徑分支交給指定目標連接埠
請求頭 根據指定請求頭存在或值匹配選擇規則
Cookie 根據指定 Cookie 存在或值匹配選擇規則
HTTPS 為該網域規則啟用 HTTPS 行為

同一條規則中填寫的條件需要同時滿足。填寫請求頭或 Cookie 的名稱、但不指定匹配值時,表達的是存在性條件;指定值後則按該值判斷。

路徑前綴按路徑邊界匹配:/api 匹配 /api 和 /api/users,不匹配 /apix。轉送時保留原請求路徑。

示例:前端與 API

可以讓網站預設規則指向前端連接埠,再讓 /api 前綴規則指向提供 API 的目標。設定前確認後端實際接受帶 /api 的請求路徑。

多條規則重疊時,條件數量及前綴等會影響選擇。應盡量讓規則職責清晰,並分別驗證命中與不命中的請求,不要依賴清單顯示順序充當任意優先級設定。

驗證 DNS 與入口

curl -I http://app.example.com
curl -I https://app.example.com

替換為實際網域。DNS 尚未傳播時,可以使用支援指定解析地址的用戶端做定向測試,但最終仍要驗證公開 DNS 的結果。

如果設定了 AAAA 記錄,必須確認 IPv6 路徑同樣可用。只驗證 IPv4 成功不足以證明所有用戶端都能存取。

故障定位

請求未到達 Pingress 時檢查 DNS、地址和防火牆。到達但未匹配時檢查網域、路徑、請求頭及 Cookie。匹配後上游失敗時檢查容器連接埠、實際副本和應用程式監聽地址。

使用存取日誌核對匹配結果;TLS 問題轉到自動憑證與續期。

輸入關鍵字搜尋…

↑↓ 移動↵ 選擇Esc 關閉