您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。info
虛擬主機表示法
用於定義虛擬主機的 XML 物件是以 Edge 版本 (Cloud 或 Private Cloud) 版本為準。
如果您是 Private Cloud 客戶,請務必使用正確的 XML 版本。
Cloud 與私有雲 4.17.01 以上版本
<VirtualHost name="vhostName"> <Port>portNumber</Port> <BaseUrl>http://myCo.com</BaseUrl> <OCSPStapling>offOn</OCSPStapling> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <!-- Private Cloud only --> <Interface>interfaceName</Interface> </Interfaces> <RetryOptions> <RetryOption>option</RetryOption> </RetryOptions> <ListenOptions> <ListenOption>option</ListenOption> </ListenOptions> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>ref://keystoreRef</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>ref://truststoreRef</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> </SSLInfo> <!-- UseBuiltInFreeTrialCert is for Edge Cloud only --> <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert> <PropagateTLSInformation> <!-- PropagateTLSInformation is Alpha in the Cloud only --> <ConnectionProperties>trueFalse</ConnectionProperties> <ClientProperties>trueFalse</ClientProperties> </PropagateTLSInformation> <Properties> <Property name="proxy_read_timeout">timeout</Property> <Property name="keepalive_timeout">timeout</Property> <Property name="proxy_request_buffering">onOff</Property> <Property name="proxy_buffering">onOff</Property> <!-- ssl_protocols is Private Cloud only --> <Property name="ssl_protocols">protocolList</Property> <Property name="ssl_ciphers">cipherList</Property> </Properties> </VirtualHost>
私有雲 4.16.01 到 4.16.09
<VirtualHost name="vhostName"> <Port>portNumber</Port> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <Interface>interfaceName</Interface> </Interfaces> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>ref://keystoreRef</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>ref://truststoreRef</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> </SSLInfo> </VirtualHost>
Private Cloud 4.15.07 以下版本
<VirtualHost name="vhostName"> <Port>portNumber</Port> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <Interface>interfaceName</Interface> </Interfaces> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>keystore</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>truststore</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> <Ciphers> <Cipher>cipher</Cipher> <Cipher>cipher</Cipher> </Ciphers> <Protocols> <Protocol>protocol</Protocol> <Protocol>protocol</Protocol> </Protocols> </SSLInfo> </VirtualHost>
虛擬主機設定屬性
下表列出用於設定虛擬主機的屬性:
屬性 | 說明 | 預設 | 必填 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VirtualHost |
指定虛擬主機的名稱。設定 API Proxy 時,您可以使用這個名稱來參照虛擬主機。 您可以在名稱屬性中使用的字元僅限於:A-Z、0-9、._\-$%。 |
無 | 是 | ||||||||||||
通訊埠 |
指定虛擬主機使用的通訊埠號碼。確認 Edge Router 上的通訊埠已開啟。 如果您在 適用於 Cloud:建立虛擬主機時,您必須指定通訊埠 443。如果省略,系統會預設將通訊埠設為 443。如果您有使用 443 以外通訊埠的現有虛擬主機,就無法變更通訊埠。 私有雲 4.16.01 至 4.17.05 版:建立虛擬主機時,您必須指定虛擬主機使用的路由器通訊埠。例如通訊埠 9001。根據預設,路由器會以「 Apigee」使用者的身分執行,但無法存取具有特殊權限的通訊埠 (通常是 1024 以下的通訊埠)。如要建立將路由器繫結至受保護通訊埠的虛擬主機,您必須將路由器設定為具有這些通訊埠存取權的使用者。詳情請參閱「設定虛擬主機」一文。 適用於 4.16.01 之前的私人雲端版本:路由器只能在特定通訊埠上,使用指定憑證,為每個虛擬主機監聽一個 HTTPS 連線。因此,如果在指定通訊埠的路由器上發生 TLS 終止作業,多個虛擬主機就無法使用相同的通訊埠編號。 |
無 | 是 | ||||||||||||
BaseUrl | 針對部署至虛擬主機的 API Proxy,覆寫 Edge UI 顯示的網址。在 Edge Router 前端有外部負載平衡器時,此選項非常實用。如需更多資訊,請參閱「設定私有雲的 TLS API 存取權」。
|
無 | 否 | ||||||||||||
OCSPStapling |
OCSP (線上憑證狀態通訊協定) 用戶端會向 OCSP 回應端傳送狀態要求,以判斷 TLS 憑證是否有效。回應會指出 TLS 憑證是否有效且未遭到吊銷。 啟用之後,OCSP Stapling 可讓 Edge 做為單向傳輸層安全標準 (TLS) 的傳輸層安全標準 (TLS) 伺服器,直接查詢 OCSP 回應器並快取回應。接著,Edge 會將此回應傳回至 TLS 用戶端,或將其釘住,做為 TLS 握手的一部分。詳情請參閱「在伺服器上啟用 OCSP 釘選功能」。 您必須啟用 TLS,才能啟用 OCSP 釘選功能。如要啟用,請設為 |
關閉 | 否 | ||||||||||||
HostAliases | |||||||||||||||
HostAlias |
路由器上虛擬主機的公開 DNS 名稱,可視需要加入連接埠號碼。虛擬主機的虛擬主機別名名稱和連接埠號碼組合,必須是 Edge 安裝中所有虛擬主機的不重複組合。也就是說,如果多個虛擬主機有不同的主機別名,則可使用相同的通訊埠編號。 您必須建立與主機別名相符的 DNS 項目和 CNAME 記錄,且主機別名必須與用戶端在
您可以在同一個虛擬主機定義中加入多個 您可以在主機別名中加入「*」萬用字元。「*」萬用字元只能放在主機別名開頭 (第一個「.」之前),且不得與其他字元混用。例如 適用於 Cloud:如果您有現有的虛擬主機,且使用 443 以外的通訊埠,就無法新增或移除主機別名。 私人雲端:如果您要使用路由器的 IP 位址 (而非 DNS 項目) 設定主機別名,請為每個路由器新增個別的主機別名,指定每個路由器的 IP 位址和虛擬主機的通訊埠。 |
無 | 是 | ||||||||||||
介面 | 僅適用於 Edge for Private Cloud。 | ||||||||||||||
介面 |
指定您要將 例如,如要指定只將通訊埠繫結至 en0: <Interfaces> <Interface>en0</Interface> </Interfaces> 執行「ifconfig -a」指令來決定系統可用的介面。 |
無 | 所有介面 | ||||||||||||
RetryOptions | 適用於 Edge Cloud 和 Private Cloud 4.18.01 以上版本。 | ||||||||||||||
RetryOption |
設定路由器在訊息處理器關閉時,對此虛擬主機的反應方式。 您可以使用
如果您指定多個值,路由器會使用邏輯 OR 運算子將這些值合併。 例如: <RetryOptions> <RetryOption>http_599</RetryOption> <RetryOption>error</RetryOption> <RetryOption>timeout</RetryOption> <RetryOption>invalid_header</RetryOption> </RetryOptions> |
||||||||||||||
ListenOptions | 適用於 Private Cloud 4.18.01 以上版本,以及向 Apigee Edge 支援團隊提出要求的 Edge Cloud。 | ||||||||||||||
ListenOption |
如果您在 TCP 直通模式中使用 ELB 處理對邊緣路由器的要求,路由器會將 ELB 的 IP 位址視為用戶端 IP,而不是實際的用戶端 IP。如果 Router 需要真正的用戶端 IP,請在 ELB 上啟用
例如: <ListenOptions> <ListenOption>proxy_protocol</ListenOption> </ListenOptions> 如要日後取消設定 |
||||||||||||||
SSLInfo | |||||||||||||||
已啟用 |
啟用單向 TLS/SSL。您必須已定義含有憑證和私密金鑰的 KeyStore。 適用於 Cloud:您必須擁有由信任實體 (例如 Symantec 或 VeriSign) 簽署的憑證。您無法使用自行簽署的憑證,或由自行簽署的 CA 簽署的分葉憑證。 適用於 Cloud:如果現有的虛擬主機已設定為使用 443 以外的通訊埠,您就無法變更 TLS 設定。這表示您無法將 TLS 設定從「已啟用」變更為「已停用」,也無法從停用變更為啟用。 |
false | 否 | ||||||||||||
ClientAuthEnabled | 在 Edge (伺服器) 和提出要求的應用程式 (用戶端) 之間啟用雙向或用戶端 TLS。如要啟用雙向 TLS,您必須在 Edge 上設定信任存放區,其中包含來自 TLS 用戶端的憑證。 | false | 否 | ||||||||||||
KeyStore |
Edge 上的金鑰庫名稱。 Apigee 建議您使用參照來指定 KeyStore 名稱,這樣您就能變更 KeyStore 而無須重新啟動 Router。詳情請參閱設定 TLS 的選項。 |
無 | 如果「Enabled」為「true」,則為「是」 | ||||||||||||
KeyAlias | 您上傳憑證和私密金鑰至 KeyStore 時指定的別名。您必須使用文字方式指定別名名稱,無法使用參照。詳情請參閱「設定 TLS 的選項」。 | 無 | 如果「Enabled」為「true」,則為「是」 | ||||||||||||
TrustStore |
Edge 上的信任存放區名稱,其中包含用於雙向 TLS 的憑證或憑證鏈結。如果 Apigee 建議您使用參照來指定信任存放區名稱,這樣您就可以在不必重新啟動路由器的情況下變更信任存放區。詳情請參閱「設定 TLS 的選項」。 |
無 | 否 | ||||||||||||
IgnoreValidationErrors |
如果為 true,則會指定忽略 TLS 憑證錯誤。這與 cURL 的「-k」選項類似。 為目標伺服器和目標端點設定 TLS 時,以及設定使用雙向 TLS 的虛擬主機時,這個選項才有效。 與目標端點/目標伺服器搭配使用時,如果後端系統使用 SNI,且傳回的憑證主體別名 (DN) 與主機名稱不相符,就無法忽略錯誤,連線也會失敗。 |
false | 否 | ||||||||||||
加密 |
僅適用於 Edge for Private Cloud 4.15.07 以下版本。 指定虛擬主機支援的密碼編譯器。如果未指定密碼,系統會允許 JVM 使用的所有密碼。 如要限制加密,請加入下列元素: <Ciphers> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher> </Ciphers> |
所有 JVM 支援的類型 | 否 | ||||||||||||
通訊協定 |
僅適用於 Edge for Private Cloud 4.15.07 以下版本。 指定虛擬主機支援的通訊協定。如果未指定通訊協定,則會允許 JVM 可用的所有通訊協定。 如要限制通訊協定,請新增下列元素: <Protocols> <Protocol>TLSv1</Protocol> <Protocol>TLSv1.2</Protocol> <Protocol>SSLv2Hello</Protocol> </Protocols> |
所有 JVM 支援的類型 | 否 | ||||||||||||
UseBuiltInFreeTrialCert | 僅適用於 Edge Cloud。 | ||||||||||||||
UseBuiltInFreeTrialCert |
如果您有付費的 Edge for Cloud 帳戶,但尚未取得 TLS 憑證和金鑰,可以建立使用 Apigee 免付費試用版憑證和金鑰的虛擬主機。也就是說,您可以建立虛擬主機,而無須先建立金鑰庫。 Apigee 免費試用憑證的定義為 請參閱「定義使用 Apigee 免付費試用版憑證和金鑰的虛擬主機」一文。 |
false | 否 | ||||||||||||
PropagateTLSInformation | 僅適用於 Edge Cloud Alpha 版。 | ||||||||||||||
ConnectionProperties |
啟用 Edge 擷取 TLS 連線資訊的功能。這項資訊會以流程變數的形式提供在 API Proxy 中。詳情請參閱「在 API Proxy 中存取 TLS 連線資訊」一文。 |
false | 否 | ||||||||||||
ClientProperties |
啟用 Edge 在雙向 TLS 中擷取的用戶端憑證詳細資料。這項資訊會以 API Proxy 中的流程變數形式提供。詳情請參閱「評估 API Proxy 中的傳輸層安全標準 (TLS) 連線資訊」。 |
false | 否 | ||||||||||||
資源 | 適用於 Edge Cloud 和 Private Cloud 4.17.01 以上版本。 | ||||||||||||||
proxy_read_timeout |
設定訊息處理器與路由器之間的逾時時間 (以秒為單位)。如果在這個時間結束前,路由器仍未收到訊息處理器的回應,路由器就會捨棄連線,並傳回 HTTP 504 回應。 proxy_read_timeout 的值應大於訊息處理工具使用的目標逾時值。這樣可確保 Router 不會在 Message Processor 有時間傳回回應前就逾時。根據訊息處理器的 |
57 | 否 | ||||||||||||
keepalive_timeout |
當用戶端提出含有 Keep-Alive 標頭的要求時,設定用戶端與 Router 之間的逾時時間長度 (以秒為單位)。路由器會在時間到期前保持連線狀態。 如果 Router 目前正在等待訊息處理器的回應,就不會關閉連線。只有在 Router 將回應傳回給用戶端後,才會開始逾時。 |
65 | 否 | ||||||||||||
ssl_ciphers |
設定虛擬主機支援的密碼編譯器,覆寫路由器上設定的預設密碼編譯器。 指定以冒號分隔的加密清單清單,格式如下: <Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property> 如要瞭解這個符記允許的語法和值,請參閱 https://www.openssl.org/docs/man1.0.2/man1/ciphers.html。請注意,這個權杖會使用 OpenSSL 加密名稱 (例如 AES128-SHA256),而非 Java/JSSE 加密名稱 (例如 TLS_RSA_WITH_AES_128_CBC_SHA256)。 |
高:!aNULL: !MD5: !DH+3DES: !kEDH |
否 | ||||||||||||
ssl_protocols |
僅適用於 Edge for Private Cloud。 將虛擬主機支援的 TLS 通訊協定設為以空格分隔的清單,並覆寫路由器上設定的預設通訊協定。 注意:如果兩個虛擬主機共用相同的連接埠,則必須將 指定以空格分隔的 TLS 通訊協定清單,格式如下: <Property name="ssl_protocols">TLSv1 TLSv1.2</Property> |
TLSv1 TLSv1.1 TLSv1.2 | 否 | ||||||||||||
proxy_request_buffering |
啟用 (開啟) 或停用 (關閉) 要求主體的緩衝功能。當緩衝功能開啟時,路由器會先將整個要求主體緩衝,再傳送至訊息處理器。如果發生錯誤,路由器可以重試不同的訊息處理器。 如果關閉,則會停用緩衝功能,且要求主體會在收到後立即傳送至訊息處理器。如果發生錯誤,Router 不會將要求重試至其他 Message Processor。 |
在 | 否 | ||||||||||||
proxy_buffering | 啟用 (開啟) 或停用 (關閉) 回應緩衝處理。開啟緩衝功能後,路由器會緩衝回應。當緩衝功能關閉時,回應會在 Router 收到後立即同步傳送至用戶端。 | 在 | 否 |