設定虛擬主機

Private Cloud v. 4.17.01 版

Edge 上的虛擬主機會定義 API Proxy 的網域和 Edge Router 通訊埠 公開,以及應用程式用來存取 API Proxy 的網址。還有一個虛擬主機 定義要透過 HTTP 通訊協定或加密 HTTPS 存取 API Proxy 因此效能相當卓越

做為 Edge 新手上路流程的一部分,您必須建立機構、環境和 虛擬主機Edge 提供 setup-org 指令, 這個程序對新使用者來說更加簡單

建立虛擬主機時,必須指定下列資訊:

  • 您在 API 中用來參照虛擬主機的名稱 Proxy 執行要求。
  • 虛擬主機的路由器通訊埠。一般需要這些通訊埠 從 9001 開始,並針對每個新的虛擬主機遞增一個。
  • 虛擬主機的主機別名。一般來說,叢集的 DNS 名稱 虛擬主機

Edge Router 會比較 主機 將傳入要求傳送至可用主機別名清單,以判定 API Proxy 可 來處理要求。透過虛擬主機提出要求時,請指定網域名稱 或是指定路由器的 IP 位址,然後 找到含有「主機」標頭的 主機別名。

舉例來說,如果您建立了虛擬主機,其主機別名為 myapis.apigee.net 9001,那麼透過該虛擬主機向 API 發出的 cURL 要求可能會使用下列其中一種格式 表單:

  • 如有 myapis.apigee.net 的 DNS 項目:

    curl http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}
  • 如果沒有 myapis.apigee.net 的 DNS 項目:

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} -H 「主機:myapis.apigee.net」

    請在這份表單中指定 IP 位址 並在主機標頭中傳遞主機別名。

    注意:curl 指令、大部分瀏覽器和許多其他公用程式都會自動使用 將 Host 標頭附加到要求的一部分,這樣您就可以使用 curl 指令:


    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

沒有 DNS 時的選項 虛擬主機項目

如果沒有 DNS 項目,其中一個選項是將主機別名設為 虛擬主機的路由器和通訊埠,例如 <routerIP>:port。例如:

192.168.1.31:9001

然後以下方格式建立 curl 指令:

curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} 

建議您使用這個選項,因為此做法可與 Edge UI 搭配運作。

如果您有多個路由器,請為每個路由器新增主機別名,並指定以下項目的 IP 位址: 每個路由器和虛擬主機的通訊埠

或者,您也可以將主機別名設為值,例如: 做為 temp.hostalias.com然後,您必須在每次 要求:

curl -v http://<routerIP>:9001/{proxy-base-path}/{resource-path}  -H 'host: temp.hostalias.com'

或在 /etc/hosts 檔案中新增主機別名。例如, 到 /etc/hosts:

192.168.1.31   temp.hostalias.com

接著,您可以像已有 DNS 項目一樣提出要求:

curl -v http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}

在虛擬主機中使用受保護的通訊埠

要建立將路由器繫結至受保護通訊埠 (例如通訊埠) 的虛擬主機 小於 1024 的數字,則您必須設定路由器以使用者的身分執行,且具有存取權 這些通訊埠根據預設,路由器會以使用者「 Apigee」的身分執行所以無法存取 特殊權限通訊埠

如何以其他使用者的身分執行路由器:

  1. 根層級,建立檔案 /opt/apigee/etc/edge-router.d/RUN_USER.sh
  2. 將下列項目新增至檔案:
    RUN_USER=root
    如果您不想以根層級執行路由器,請指定可存取通訊埠的使用者。
  3. 儲存檔案。
  4. 如果您指定了根目錄以外的使用者,請將檔案擁有者變更為該使用者:
    &gt; chown:USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. 重新啟動路由器:
    &gt; /opt/apigee/apigee-service/bin/apigee-service Edge-router 重新啟動