您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
如果在地端部署環境中安裝,您能完全控管虛擬主機。您可以針對任何機構使用 TLS 或不使用 TLS 的任何機構建立虛擬主機。
這份文件說明如何建立簡易的虛擬主機。也就是不支援 TLS。如需更多範例,包括如何建立支援 TLS 的虛擬主機的範例,請參閱為私有雲設定 API 的 TLS 存取權。
瞭解詳情:
關於主機別名
建立虛擬主機時,您必須指定虛擬主機的主機別名。通常是虛擬主機的 DNS 名稱。
在判斷處理要求的 API Proxy 時,Edge Router 會將傳入要求的 Host
標頭與可用的主機別名清單進行比較。透過虛擬主機提出要求時,請指定與虛擬主機主機別名相符的網域名稱,或指定路由器的 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 項目,可以選擇將主機別名設為路由器的 IP 位址和虛擬主機的通訊埠,例如 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 適用的 Private Cloud 4.16.01 以上版本虛擬主機通訊埠
建立虛擬主機時,您必須指定虛擬主機使用的路由器通訊埠。例如通訊埠 9001。
對於 Apigee for Private Cloud 4.16.01 以上版本,根據預設,路由器會以使用者「apigee」執行,無法存取具有特殊權限的通訊埠 (通常為 1024 以下版本的通訊埠)。如要建立將路由器繫結到受保護的通訊埠的虛擬主機,您必須將路由器設為以具備這些通訊埠存取權的使用者的身分執行。詳情請參閱「設定虛擬主機」一文。
建立虛擬主機
本節說明如何為私有雲的 Apigee Edge 建立虛擬主機。請注意,您必須是機構管理員,才能建立新的虛擬主機。
您可以使用 API 或 Edge UI 為 Apigee Edge 建立私有雲的虛擬主機。詳情請見以下各節。
使用瀏覽器建立虛擬主機
本節說明如何使用瀏覽器建立虛擬主機 (僅限 Edge UI)。
如何在 Edge UI 中建立新的虛擬主機:
- 登入 Edge 管理 UI。
- 依序選取「Admin」>「Virtual Hosts」。
從下拉式清單中選取環境。
Edge 會顯示該環境的虛擬主機清單。
- 如要建立新的虛擬主機,請選取「+ Virtual Host」。
Edge 會顯示「Create Virtual Host」表單。
您也可以按一下現有虛擬主機的名稱進行編輯。
- 定義新的虛擬主機。請注意,「Base URL」欄位必須包含通訊協定 (亦即在欄位值前面加上「http://」或「https://」)。
此外,請注意下列事項:
- 可建立的虛擬主機數量沒有上限
- TLS 是選用項目,可能是 1.0、1.1 或 1.2 版本
- 可以設定虛擬主機的通訊埠
- 按一下「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
在此情況下:
http
或https
:如果虛擬主機設為支援傳輸層安全標準 (TLS),請使用 HTTPS。如果虛擬主機不支援 TLS,請使用 HTTP。- routerIP:port 是虛擬主機的 IP 位址和通訊埠號碼。
- 您建立 API Proxy 時,系統會定義 proxy-base-path 和 resource-path。
一般來說,您不會將 API 發布給具有 IP 位址和通訊埠編號的客戶。請改為為路由器和通訊埠定義 DNS 項目。例如:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
如果您定義了 DNS 項目,就必須為虛擬主機建立與 DNS 項目網域名稱相符的「主機別名」。主機別名必須與用戶端在 Host
標頭中傳入的字串相符。從上述範例中,您可以指定 api.myCompany.com
的主機別名。
<VirtualHost name="myVHost"> <HostAliases> <HostAlias>api.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> </VirtualHost>
如要建立使用 HTTP 通訊協定的虛擬主機,請執行下列步驟:
- 使用 Create a Virtual Host API 建立虛擬主機,其中 ms-IP 是管理伺服器節點的 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
- 為與主機別名相符的虛擬主機建立 DNS 記錄。
- 如果您有現有的 API Proxy,請將虛擬主機新增至 Proxy 端點的
<HTTPConnection>
元素。系統會自動將虛擬主機新增至所有新的 API Proxy。 請參閱 設定 API Proxy 以使用虛擬主機。
修改虛擬主機
如要修改虛擬主機,請執行下列步驟:
-
使用 更新虛擬主機 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
-
僅適用於 Edge for Private Cloud 4.16.01 和 4.16.05 版:如果您要修改現有的虛擬主機,而且在不變更通訊埠編號的情況下啟用 TLS 或停用 TLS,則:
停止路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
刪除
/opt/nginx/conf.d
中的任何檔案:rm -f /opt/nginx/conf.d/*
啟動路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- 針對所有路由器重複以上步驟。