設定私有雲的虛擬主機

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

安裝地端部署系統時,您可以完全控管虛擬主機,您可以建立 在任何環境中使用 TLS,都能為任何機構建立虛擬主機。

本文件說明如何建立簡易的虛擬主機。也就是沒有 。以取得更多範例 (包括建立支援 TLS 的虛擬主機的範例) 請參閱設定 TLS 使用私有雲的 API 存取權

瞭解詳情

關於主機別名

建立虛擬主機時,您必須指定虛擬主機的主機別名。 這通常是虛擬主機的 DNS 名稱。

Edge Router 會將傳入要求的 Host 標頭和 可用主機別名的清單,用於判定處理要求的 API Proxy。 透過虛擬主機提出要求時,請指定與主機相符的網域名稱 或指定路由器的 IP 位址,以及包含主機別名的 Host 標頭。

舉例來說,如果您建立了一個虛擬主機,主機別名為 通訊埠 9001 上的 myapis.apigee.net,然後對 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 'host:myapis.apigee.net'

    請在這份表單中指定路由器的 IP 位址,並將主機別名傳送至 Host 標頭。

    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.接著,您必須為每個要求傳遞 Host 標頭:

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

關於 Edge 上的虛擬主機通訊埠 私有雲 4.16.01 以上版本

建立虛擬主機時,您必須指定虛擬主機使用的路由器通訊埠。適用對象 例如通訊埠 9001

如果是適用於私有雲的 Apigee 4.16.01 以上版本,則路由器預設會以 使用者「apigee」無法存取具有特殊權限的通訊埠,通常是 1024 以下的通訊埠。如果 要建立將路由器繫結至受保護通訊埠的虛擬主機,然後 將路由器設為能夠以存取這些通訊埠的使用者身分執行。詳情請參閱「設定虛擬主機」。

建立虛擬主機

本節說明如何為 Private Cloud 適用的 Apigee Edge 建立虛擬主機。請注意,如要建立新的 虛擬主機,您必須是機構組織管理員。

您可以使用 API 或 Edge UI 為 Apigee Edge 私有雲建立虛擬主機。這些 。

使用瀏覽器建立虛擬主機

本節說明如何使用瀏覽器建立虛擬主機 (僅限 Edge UI)。

如何在 Edge UI 中建立新的虛擬主機:

  1. 登入 Edge Management UI。
  2. 依序選取「管理員」>虛擬主機
  3. 從下拉式清單中選取環境。

    Edge 會顯示該環境的虛擬主機清單。

  4. 如要建立新的虛擬主機,請選取「+ Virtual Host」

    邊緣會顯示「Create Virtual Host」表單。

    你也可以按一下現有虛擬主機的名稱來進行編輯。

  5. 定義新的虛擬主機。請注意,「基準網址」欄位必須包含 通訊協定 (也就是在欄位值前面加上「http://」或「https://」)。

    此外,請注意下列事項:

    • 可建立的虛擬主機數量沒有上限
    • 傳輸層安全標準 (TLS) 是選用項目,可能搭載 1.0、1.1 或 1.2 版。
    • 可以設定虛擬主機的通訊埠
  6. 按一下「Create」(建立) 按鈕即可儲存新的虛擬主機。

使用 API 建立虛擬主機

如要透過 API 建立虛擬主機,請建立 XML 物件來定義 虛擬主機舉例來說,下列 XML 物件定義了使用 HTTP 通訊協定:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>
敬上

請注意,虛擬主機包含 name 屬性。請使用 name 屬性來設定 API Proxy 使用虛擬主機。

接著,您可以提出要求,透過這個虛擬主機存取 API Proxy:

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

在此情況下:

  • httphttps:如果虛擬主機設為 (支援 TLS,請使用 HTTPS)。如果虛擬主機不支援 TLS,請使用 HTTP。
  • routerIP:port 是虛擬主機的 IP 位址和通訊埠編號。
  • proxy-base-pathresource-path 是在建立 並存取 API Proxy

一般來說,您不會使用 IP 位址和通訊埠編號向客戶發布 API。 而是要為路由器和通訊埠定義 DNS 項目。例如:

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

如果您定義了 DNS 項目,就必須為虛擬主機建立「主機別名」 。主機別名必須與 用戶端會傳入 Host 標頭。 在上述範例中,您可以指定 api.myCompany.com 的主機別名。

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

如要建立使用 HTTP 通訊協定的虛擬主機,請執行下列步驟:

  1. 使用 建立 Virtual Host API,其中 ms-IP 是 Management Server 節點的 IP 位址或網域名稱:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. 為與主機別名相符的虛擬主機建立 DNS 記錄。
  3. 如果目前已有 API Proxy,請將虛擬主機新增至 <HTTPConnection> 元素 存取 Proxy 端點系統會自動將虛擬主機新增至所有新的 API Proxy。 詳情請參閱 設定 API Proxy 以使用虛擬主機

修改虛擬主機

,瞭解如何調查及移除這項存取權。

如要修改虛擬主機,請執行下列步驟:

  1. 使用 更新 Virtual Host API,其中 <ms-IP> 是 IP 位址 或網域名稱管理伺服器您必須指定 虛擬主機,而不只是您要變更的元素。在本 例如,將虛擬主機的通訊埠編號從 9008 變更為 9009:

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. 僅適用於 Private Cloud 4.16.01 和 4.16.05 版的 Edge,請注意以下幾點: 現有的虛擬主機,且是在不變更通訊埠的情況下啟用 TLS 或停用 TLS ,然後:
    1. 停止路由器:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. 刪除 /opt/nginx/conf.d 中的所有檔案:

      rm -f /opt/nginx/conf.d/*
    3. 啟動路由器:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. 對所有路由器重複以上步驟。