設定虛擬主機

Private Cloud v. 4.17.05 專用 Edge

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

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

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

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

例如,在傳遞至 setup-org 指令的設定檔中,您必須 可以將這些資訊指定為:

# Specify virtual host information.
VHOST_PORT=9001
VHOST_NAME=default

# If you have a DNS entry for the virtual host.
VHOST_ALIAS=myapis.apigee.net

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 位址,並將主機別名傳送至 「Host」標頭。

    注意:cURL 指令、大部分瀏覽器和許多其他公用程式都會自動 附加「Host」標頭和 網域,因此您可以實際在以下格式中使用 cURL 指令:

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

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

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

VHOST_ALIAS=192.168.1.31:9001

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

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

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

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

# Specify the IP and port of each router as a space-separated list enclosed in quotes:
# VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"

或者,您也可以將主機別名設為值,例如: 做為 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}

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

要建立將路由器繫結至受保護通訊埠 (例如通訊埠) 的虛擬主機 小於 1000 的數字,那麼您必須設定路由器,使其成為具有存取權限的用戶 這些通訊埠根據預設,路由器會以使用者「 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 重新啟動