您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
付費帳戶的 Cloud 客戶和所有 Edge for Private Cloud 客戶,都可以在機構中建立虛擬主機。建立虛擬主機的使用者必須是機構管理員,或是具備修改虛擬主機權限的自訂角色。其他角色的使用者沒有建立虛擬主機的授權。
觀看虛擬主機簡介影片。
建立虛擬主機
請按照下列基本程序建立虛擬主機。 實際使用的程序取決於您是 Cloud 或 Private Cloud 客戶,以及是否啟用 TLS:
- 為公開網域建立 DNS 項目和 CNAME 記錄。
- 如要在虛擬主機上啟用 TLS:
- 按照「Keystores and Truststores」的操作說明建立及設定 KeyStore。
- 將憑證和金鑰上傳至 KeyStore。確認憑證指定的網域名稱與您要用於虛擬主機的主機別名相符。
- 使用 Edge UI 或 API 建立金鑰儲存區的參照。參照會指定金鑰儲存區的名稱,以及
KeyStore參照類型。如要進一步瞭解如何建立及修改參照,請參閱「使用參照」。 - 如果您要執行雙向 TLS,請建立信任儲存區、上傳憑證,並建立對信任儲存區的參照。請按照「金鑰儲存庫和信任儲存庫」一文所述的程序建立信任儲存庫。
- 使用「Create a Virtual Host」(建立虛擬主機) API 建立虛擬主機。如要啟用 TLS,請務必指定正確的鍵儲區參照、信任儲存庫參照和金鑰別名。
- 如果您有現有的 API Proxy,請將虛擬主機新增至 ProxyEndpoint。
系統會自動將虛擬主機新增至所有新的 API Proxy。請參閱設定 API Proxy 以使用虛擬主機。
將 API Proxy 更新為使用虛擬主機,並為主機別名建立 DNS 項目和 CNAME 記錄後,即可存取 API Proxy,如下所示:
https://api.myCompany.com/v1/project-base-path/resource-path
例如:
https://api.myCompany.com/v1/weather/forecastrss?w=12797282
使用 API 或 UI 建立虛擬主機
您可以使用 Edge API 或 Edge UI 建立虛擬主機。
以下大部分範例都使用 Edge API。如要存取 Edge UI 中的 UI,以便建立、修改及刪除虛擬主機,請按照下列步驟操作:
- 登入 apigee.com/edge
Edge for Private Cloud 客戶使用
http://ms-ip:9000(地端部署),其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在左側導覽列中,依序選取「管理」>「虛擬主機」。
- 選取環境,例如 prod 或 test。
系統會顯示為環境定義的虛擬主機。 - 選取「+ 虛擬主機」建立虛擬主機,或選取現有虛擬主機的名稱進行編輯。
建立 HTTP 的虛擬主機
私有雲專用 Edge 客戶可以使用 HTTP 建立虛擬主機。
如要建立不支援 TLS 的虛擬主機,請建立定義虛擬主機的 XML 物件。舉例來說,下列 XML 物件定義使用 HTTP 通訊協定的虛擬主機:
<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>80</Port>
</VirtualHost>在這個定義中,您會:
- 將 name 指定為 myVHost。您可以在 API Proxy 或 API 呼叫中,使用這個名稱參照虛擬主機。
- 將主機別名指定為 api.myCompany.com。這是公開網域,用於存取 DNS 定義和 CNAME 記錄所定義的 API。
- 將通訊埠編號指定為 80。如果省略,通訊埠預設為 443。
您可以在虛擬主機中設定其他屬性。 如需所有屬性的參考資料,請參閱「虛擬主機屬性參考資料」。
如果您有任何現有的 API Proxy,請將虛擬主機新增至 Proxy 端點的 <HTTPConnection> 元素。系統會自動將虛擬主機新增至所有新的 API Proxy。請參閱設定 API Proxy 以使用虛擬主機。
如果您建立新的 API Proxy,且不應透過特定虛擬主機存取,則必須編輯 API Proxy,從 ProxyEndpoint 中移除該虛擬主機。
然後,您只要向下列網址提出要求,即可透過這個虛擬主機存取 API Proxy:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
使用「Create a Virtual Host」(建立虛擬主機) API 建立虛擬主機:
curl -X POST -H "Content-Type:application/xml" \
http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
-d '<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>80</Port>
</VirtualHost>' \
-u sysAdminEmail:password為單向 TLS 建立虛擬主機
下列 XML 物件會定義單向 TLS 的虛擬主機:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>在這個定義中,您將 <Enable> 元素設為 true 來啟用 TLS,並使用 <KeyStore> 和 <KeyAliase> 元素指定 TLS 連線使用的金鑰儲存區和金鑰別名。
如要進一步瞭解如何使用 TLS,請參閱「TLS/SSL」。
決定如何在虛擬主機中指定金鑰儲存區和信任儲存區名稱
設定虛擬主機以支援 TLS 時,請使用參照指定金鑰儲存區。參考是包含金鑰儲存區或信任儲存區名稱的變數,而不是直接指定金鑰儲存區或信任儲存區名稱,如下所示:
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>使用參照的優點是,您可以變更參照的值,藉此變更虛擬主機使用的金鑰儲存區,通常是因為目前金鑰儲存區中的憑證即將到期。變更參照值不需要重新啟動 Edge 路由器。如要進一步瞭解如何建立及修改參照,請參閱「使用參照」。
您只能參照金鑰儲存區和信任儲存區,不能參照別名。變更 Keystore 的參照時,請確保憑證的別名與舊 Keystore 中的別名相同。
使用金鑰儲存區和信任儲存區參照時的限制
使用金鑰儲存區和信任儲存區的參照時,請務必考量下列限制:
- 只有在支援 SNI,且在 Apigee Router 上終止 SSL 時,才能在虛擬主機中使用金鑰儲存區和信任儲存區參照。
- 如果您在 Apigee Router 前方有負載平衡器,並在負載平衡器上終止 TLS,就無法在虛擬主機中使用金鑰儲存區和信任儲存區參照。
為雙向 TLS 建立虛擬主機
如要啟用雙向傳輸層安全標準:TLS,請將 <ClientAuthEnabled> 元素設為 true,並使用 <TrustStore> 元素搭配參照指定信任儲存庫。信任存放區會保留用戶端憑證核發單位和憑證的 CA 鏈結,這是必要條件。用戶端也必須正確設定雙向 TLS。
如要為雙向 TLS 建立虛擬主機,請建立定義虛擬主機的 XML 物件:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>true</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<TrustStore>ref://myTestTruststoreRef</TrustStore>
</SSLInfo>
</VirtualHost>在這個定義中,您會:
- 將
<ClientAuthEnabled>設為 true,即可啟用雙向 TLS。 - 使用
<TrustStore>元素指定信任儲存區的參照。信任存放區會保留用戶端憑證核發單位和憑證的 CA 鏈結,這是必要條件。
如要進一步瞭解如何使用 TLS,請參閱「TLS/SSL」。
修改虛擬主機
付費帳戶的 Cloud 客戶和所有 Edge for Private Cloud 客戶,都可以使用「 更新虛擬主機」API 更新虛擬主機。您可以使用這個 API,設定虛擬主機屬性參考資料中說明的虛擬主機所有屬性。
使用「Update a Virtual Host」(更新虛擬主機) API 更新虛擬主機。使用 API 時,您必須在要求主體中指定虛擬主機的完整定義,而不只是要變更的元素。
在本範例中,您會設定 proxy_read_timeout 屬性的值:
curl -X PUT -H "Content-Type:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
-d '<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
<Properties>
<Property name="proxy_read_timeout">50</Property>
</Properties>
</VirtualHost>' \
-u orgAdminEmail:password刪除虛擬主機
如要從環境中刪除虛擬主機,請先更新所有參照該虛擬主機的 API Proxy,移除相關參照。請參閱設定 API Proxy 以使用虛擬主機。
使用「Delete a Virtual Host」(刪除虛擬主機) API 刪除虛擬主機:
curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \ -u orgAdminEmail:password
查看虛擬主機的相關資訊
如要查看環境中定義的虛擬主機相關資訊,請按照下列步驟操作。
Edge
如要使用 Edge UI 查看虛擬主機的相關資訊,請按照下列步驟操作:
- 登入 apigee.com/edge。
Edge for Private Cloud 客戶使用
http://ms-ip:9000(地端部署),其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在左側導覽列中,依序選取「管理」>「虛擬主機」。
- 選取環境,例如 prod 或 test。
系統會顯示為環境定義的虛擬主機。如果虛擬主機已設定為使用金鑰儲存區或信任儲存區,請按一下「顯示」查看更多資訊。
如果虛擬主機已設定為使用 TLS/SSL,虛擬主機名稱旁會顯示鎖頭圖示。也就是說,TLS/SSL 憑證、金鑰和憑證鏈結已上傳至 Edge,並與虛擬主機建立關聯。如要查看可用憑證的相關資訊,請按照下列步驟操作:
- 在左側導覽列中,依序選取「管理」>「環境」>「TLS Keystores」。
- 選取環境 (通常為
prod或test)。 - 展開金鑰儲存區,即可查看憑證。
Classic Edge (Private Cloud)
如要使用 Classic Edge UI 查看虛擬主機的相關資訊,請按照下列步驟操作:
- 登入
http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在左側導覽列中,依序選取「管理」>「虛擬主機」。
- 選取環境,例如 prod 或 test。
- 按一下「虛擬主機」分頁標籤。
系統會顯示為環境定義的虛擬主機。如果虛擬主機已設定為使用金鑰儲存區或信任儲存區,請按一下「顯示」查看更多資訊。

如果虛擬主機已設定為使用 TLS/SSL,虛擬主機名稱旁會顯示鎖頭圖示。也就是說,TLS/SSL 憑證、金鑰和憑證鏈結已上傳至 Edge,並與虛擬主機建立關聯。如要查看可用憑證的相關資訊,請按照下列步驟操作:
- 在頂端導覽列中,依序選取「管理」>「TLS 憑證」。
- 選取環境 (通常為
prod或test)。 - 展開金鑰儲存區,即可查看憑證。
使用 Edge API 查看虛擬主機
您也可以使用 Edge API 查看虛擬主機的相關資訊。舉例來說,「列出虛擬主機」API 會傳回所有虛擬主機的清單:
curl -X GET -H "accept:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts \
-u orgAdminEmail:pWord其中 orgAdminEmail:pWord 是機構組織管理員的使用者名稱和密碼,而 org_name/env_name 則指定包含虛擬主機的機構和環境。回應範例:
[ "default", "secure" ]
如要查看特定虛擬主機的相關資訊,請使用 Get Virtual Host API:
curl -X GET -H "accept:application/xml" \
https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
-u orgAdminEmail:pWord其中 vhost_name 是虛擬主機的名稱。舉例來說,您可以將 vhost_name 指定為「secure」,查看 Apigee 建立的預設安全虛擬主機設定:
<VirtualHost name="secure">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Port>443</Port>
<Properties/>
<Interfaces/>
<RetryOptions/>
<SSLInfo>
<ClientAuthEnabled>false</ClientAuthEnabled>
<Enabled>true</Enabled>
<KeyAlias>freetrial</KeyAlias>
<KeyStore>ref://freetrial</KeyStore>
<IgnoreValidationErrors>false</IgnoreValidationErrors>
</SSLInfo>
</VirtualHost>設定 API Proxy 使用虛擬主機
建立新的 API Proxy 時,Edge 會自動設定該 Proxy,以使用機構中的所有可用虛擬主機。透過虛擬主機傳送至 API Proxy 的要求會採用下列格式:
https://host-alias/proxy-base-path/resource-path
其中:
- host-alias 通常是虛擬主機的 DNS 名稱。
- 建立 API Proxy 時會定義 proxy-base-path,且每個 API Proxy 都有專屬的。
- resource-path:可透過 API Proxy 存取的資源路徑。
控管 API Proxy 使用的虛擬主機
在 API Proxy 的 XML 設定中,您可以使用 virtualhost 標記指定與 API Proxy 相關聯的虛擬主機名稱:
<HTTPProxyConnection> <BasePath>/v1/my/proxy/basepath</BasePath> <VirtualHost>secure</VirtualHost> <VirtualHost>default</VirtualHost> </HTTPProxyConnection>
舉例來說,<VirtualHost>secure</VirtualHost> 表示用戶端可以使用「secure」虛擬主機的主機別名呼叫 API Proxy。
通常在下列情況下,您會修改與 API Proxy 相關聯的虛擬主機:
- 您建立新的虛擬主機,並擁有現有的 API Proxy。您必須編輯所有現有的 API Proxy,加入新的虛擬主機。
- 您建立新的 API Proxy,但該 Proxy 不應透過特定虛擬主機存取。您必須編輯 API Proxy,從定義中移除該虛擬主機。
如要修改與 API Proxy 相關聯的虛擬主機,請按照下列步驟操作:
-
存取 API Proxy 編輯器,詳情請參閱下文。
邊緣
如要使用 Edge UI 存取 API Proxy 編輯器,請按照下列步驟操作:
- 登入 apigee.com/edge。
Edge for Private Cloud 客戶使用
http://ms-ip:9000(地端部署),其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在左側導覽列中,依序選取「開發」>「API Proxy」。
- 在清單中選取要編輯的 API Proxy。
Classic Edge (Private Cloud)
如要使用傳統版 Edge UI 存取 API Proxy 編輯器,請按照下列步驟操作:
- 登入
http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。 - 在頂端導覽列中,選取「API」>「API Proxy」。
- 在清單中選取要編輯的 API Proxy。
- 登入 apigee.com/edge。
- 點選「Develop」分頁標籤。
- 在「Proxy Endpoints」下方,選取「default」。
- 在程式碼區域中:
- 移除 API Proxy 不支援的虛擬主機元素
<VirtualHost>。 - 新增
<VirtualHost>元素,並提供新虛擬主機的名稱。舉例來說,如果新的虛擬主機名為 MyVirtualHost,請新增下列標記:
<HTTPProxyConnection> <BasePath>/v1/my/proxy/basepath</BasePath> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> <VirtualHost>MyVirtualHost</VirtualHost> </HTTPProxyConnection>
- 移除 API Proxy 不支援的虛擬主機元素
- 儲存 API Proxy。如果 API Proxy 已部署,儲存後會以新設定重新部署。
設定 Edge 使用者介面為 API Proxy 顯示的基準網址
Edge 使用者介面會根據虛擬主機中的設定,顯示 API Proxy 的網址。虛擬主機對應於 Proxy 的部署位置。這個顯示畫面可以包含虛擬主機的路由器通訊埠編號。
在大多數情況下,Edge UI 中顯示的網址是向 Proxy 發出外部要求的正確網址。不過,部分設定顯示的網址並不正確。舉例來說,下列任一設定都可能導致顯示的網址與實際用於向 Proxy 發出外部要求的網址不符:
- 安全資料傳輸層 (SSL) 終止於負載平衡器
- 負載平衡器與 Apigee Router 之間會進行連接埠對應
- 設定路徑重寫的負載平衡器
Edge 支援虛擬主機上的 <BaseUrl> 屬性,可讓您覆寫 Edge UI 顯示的網址。以下範例顯示含有 <BaseUrl> 屬性的虛擬主機物件。
在本範例中,Edge UI 會顯示「http://myCo.com」這個值:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<BaseUrl>http://myCo.com</BaseUrl>
<Port>443</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>請注意,<BaseUrl> 的值必須包含通訊協定 (即「http://」或「https://」)。
如果未設定 <BaseUrl>,Edge UI 轉譯的預設網址會顯示為「api.myCompany.com」,但實際的主機別名為「http://myCo.com」。