Edge 上的虛擬主機會定義 API Proxy 公開的網域和 Edge 路由器通訊埠,以及應用程式用來存取 API Proxy 的網址。虛擬主機也會定義 API Proxy 是透過 HTTP 通訊協定存取,還是透過加密的 HTTPS 通訊協定存取。
在 Edge 新手上路流程中,您必須建立機構、環境和虛擬主機。Edge 提供 setup-org 指令,讓新使用者更容易完成這項程序。
建立虛擬主機時,您必須指定下列資訊:
- 虛擬主機的名稱,用於在 API Proxy 中參照。
- 虛擬主機的路由器通訊埠。這些連接埠通常從 9001 開始,每新增一個虛擬主機就遞增 1。
- 虛擬主機的主機別名。通常是虛擬主機的 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 路由器會比較傳入要求的 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標頭中傳遞主機別名。
如果虛擬主機沒有 DNS 項目,該怎麼辦?
如果沒有 DNS 項目,可以將主機別名設為路由器的 IP 位址和虛擬主機的通訊埠,格式為 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。
接著,您必須在每個要求中傳遞 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