關於虛擬主機

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

在 Edge 中,Router 會處理所有傳入的 API 流量。也就是所有 HTTP 和 HTTPS 向 API Proxy 發出的要求會先由 Edge Router 處理。

虛擬代管商可讓您在伺服器上代管多個網域名稱。 對於 Edge,伺服器會對應至 Edge Router。只要在路由器上定義多個虛擬主機, 路由器可以處理傳送至多個網域名稱的 API 要求。

Edge 上的虛擬主機會定義存取通訊協定 (HTTP 或 HTTPS)、開放式路由器通訊埠和主機 別名。主機別名通常是對應至路由器 IP 位址的 DNS 網域名稱。

例如,下圖顯示具有兩個虛擬主機定義的路由器:

第一個虛擬主機會處理 網域 domainName1 的值,第二個網域會處理 domainName2 上的 HTTP 要求。

對 API Proxy 提出的要求時,路由器會將傳入要求的 Host 標頭與 所有虛擬主機定義的「主機別名」清單,用於判斷哪個虛擬主機 則會由主機負責處理。

關於虛擬主機定義

虛擬主機包含以下資訊:

  • 虛擬主機的內部名稱。這個名稱可以用來指稱 託管在 API Proxy 中,以及在設定虛擬主機時。
  • 虛擬主機的主機別名。主機別名通常是 DNS 對應至路由器上 IP 位址的網域名稱。應用程式的 Host 標頭 API Proxy 要求必須包含虛擬主機的主機別名。
  • 路由器上的開放通訊埠
  • 是否啟用 TLS (HTTPS 存取權) (HTTP 存取)。

舉例來說,您可以在建立虛擬主機時指定下列資訊:

  • 名稱 = myvhost
  • 主機別名 = apis.acme.com
  • 通訊埠 = 443
  • TLS 已啟用
,瞭解如何調查及移除這項存取權。

根據上述虛擬主機的設定,向 API Proxy 發出的要求會使用 表單:

https://apis.acme.com/{proxy-base-path}/{resource-path}

其中:

  • {proxy-base-path} 會在您建立 API Proxy 時定義,每個 API Proxy 均不得重複。 例如:
    https://apis.acme.com/characters
  • {resource-path} 可透過 API Proxy 存取的資源路徑。例如:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

關於以下區域的虛擬主機: 雲端邊緣

每個 Edge 機構都會自動包含兩個環境 (test) 和 prod),每個環境中有兩個虛擬主機 (「預設」和「安全」); 和每個主機別名的 DNS 記錄

每個 Apigee 提供的虛擬主機,主機別名都包含機構名稱 環境,如下表所示:

環境 虛擬主機名稱 主機別名 連接埠 已啟用 TLS
prod 預設 {org-name}-prod.apigee.net 80
安全 {org-name}-prod.apigee.net 443
測試 預設 {org-name}-test.apigee.net 80
安全 {org-name}-test.apigee.net 443

例如「myorg」機構的預設網域名稱 prod 環境中為「myorg-prod.apigee.net」 因此,如要存取該機構的 API Proxy,您可以使用下列格式的網址:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Apigee 付費方案:包含「apigee.net」的網域名稱不一定是您想要公開的 以更全面、準確的方式回答顧客問題 並與顧客自然流暢地對話您可以使用 DNS 項目和 CNAME 記錄,將網域名稱對應到 部署在 Edge 上的資源您也必須建立虛擬主機,並將主機別名設為該主機 網域名稱。這樣開發人員就能透過貴公司的專屬網域存取您的 API。

以下是 Edge 中的自訂網域範例:

https://apis.acme.com/{proxy-base-path}/{resource-path}

虛擬主機簡介 on Edge for Private Cloud

當您安裝適用於 Private Cloud 的 Apigee Edge 時,沒有預設機構 環境,或是為您建立的虛擬主機完成 Edge 安裝程序後 第一個行動通常是透過 「新手上路」上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作

如要執行新手上路程序,請在 Edge Management Server 節點上執行下列指令:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

其中 configFile 包含建立 使用者、機構、環境和虛擬主機

舉例來說,您可以建立:

  • 您選擇以機構管理員身分的使用者
  • 名為「example」的機構
  • prod」機構中的環境
  • 名為 default 的虛擬主機允許透過通訊埠 HTTP 存取 9001 人
  • 存取路由器時所用的 DNS 名稱主機別名,或是路由器的 IP 位址 輸入虛擬主機的通訊埠,格式為 IP:9001

您之後可以在 內部部署的 Edge 版本如需詳細資訊,請參閱:

虛擬主機已在 Edge Router 上開啟。因此,您必須確保通訊埠能夠 您為虛擬主機指定的路由器會在路由器上開啟。您可以使用以下形式的指令 開啟通訊埠:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

執行該指令之後,您可以使用下列格式的網址存取 API:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

一般來說,您不會使用 IP 位址和 通訊埠編號。而是應定義路由器和通訊埠的 DNS 項目。例如:

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

定義 DNS 項目時,您也必須建立具有主機別名的虛擬主機 須與 DNS 項目的網域名稱相符。在上述範例中,您可以指定主機別名 myAPI.myCo.com 的 IP 位址。

關於主機別名和 DNS 名稱

您為虛擬主機設定的其中一個屬性是「主機別名」。主機別名是 (通常是虛擬主機的 DNS 名稱)。主機別名的設定方式取決於您的類型 邊緣安裝:雲端或 Private Cloud。

主機別名和 雲端適用的 Edge 中的 DNS 名稱

在 Cloud Edge 中,當您首次建立 Edge 機構時,Apigee 會自動 會建立兩個環境 (test) 和 prod),這兩個位置中的兩個虛擬主機 每個環境 (「預設」和「安全」) 和個別的 DNS 記錄 虛擬主機

虛擬主機的主機別名含有機構和環境的名稱。 因此,透過虛擬主機提出要求時,格式如下:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

一般而言,建議您建立使用網域名稱的虛擬主機,而不要使用 預設 apigee.net 網域。待辦 因此,您必須先建立自己的 DNS 項目和 CNAME 記錄。

下圖顯示 Edge 如何處理 API 要求的典型設定:

在這個例子中:

  • api.acme.com 是您想要的網域名稱。
  • 您定義了一個 DNS 項目和 CNAME 記錄,將 api.acme.com 指向 acme-prod.apigee.net.
  • 要求包含路由器會使用的 Host 標頭 決定處理要求的虛擬主機。

在這個範例中,您會在虛擬主機定義中指定下列資訊:

  • 名稱 = myvhost
  • 主機別名 = apis.acme.com
  • 通訊埠 = 443
  • 啟用 TLS 存取權

詳情請參閱「為雲端設定虛擬主機」。

主機別名 以及 Edge 中的 DNS 名稱

與 Cloud Edge 一樣,您可以建立虛擬主機,並使用您自己的網域名稱做為主機。 別名。然後建立專屬的 DNS 項目和 CNAME 記錄來存取這些虛擬主機。

雲端與私有雲的其中一項差異是 自動建立機構的 DNS 名稱,格式如下:

  • name=defaulthttp://{org-name}-{env-name}.apigee.net (路由器通訊埠 80)
  • name=securehttps://{org-name}-{env-name}.apigee.net (路由器通訊埠 443)

在私有雲的 Edge 中,您必須建立 IP 位址和通訊埠的 DNS 項目 網址。

舉例來說,您可以在虛擬主機定義中指定這些資訊:

  • 名稱 = myvhost
  • 主機別名 = apis.acme.com
  • 通訊埠 = 9001
  • 啟用 TLS 存取權

下圖顯示 Edge 如何處理 API 要求的典型設定:

在這個例子中:

  • api.acme.com 是您想要的網域名稱。
  • 您必須定義 DNS 項目和 CNAME 記錄,將 api.acme.com 指向 IP 存取路由器的 IP 位址和通訊埠
  • 要求包含路由器會使用的 Host 標頭 決定處理要求的虛擬主機。

詳情請參閱「為 Private Cloud 設定虛擬主機」。

主機別名和萬用字元

您可以在檔案中加入「*」萬用字元。"*"萬用字元可以 只能位於主機別名的開頭 (前面加上第一個「.」),且無法與其他電子郵件地址混合使用 字元。

以下是使用萬用字元的有效主機別名範例:

*.example.com

下列範例無效:

  www.*.example.com
  w*.example.com

在虛擬主機別名中使用萬用字元可讓您 API Proxy 能夠處理傳送至多個子網域的呼叫,例如 alpha.example.combeta.example.comlive.example.com。使用萬用字元別名也有助於減少使用虛擬 IP 每個環境的主機,可保留在產品中 限制,因為使用萬用字元的虛擬主機只會計為一個虛擬主機。

虛擬主機的 TLS 憑證必須在憑證的 CN 名稱中包含相符的萬用字元。 例如 *.example.com

關於虛擬主機屬性

在 Edge 中,以 XML 物件表示虛擬主機。舉例來說, 以下 XML 物件會定義虛擬主機:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <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>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

您可以設定的屬性清單,取決於您是否使用 Edge for Cloud 也就是私有雲適用的 Edge如果使用 Edge 搭配 Private Cloud 可用的屬性也取決於您的 Edge 版本。 如需虛擬主機所有屬性的完整說明,請參閱 虛擬主機屬性參考資料

如要進一步瞭解如何為特定版本的 Edge 建立虛擬主機,請參閱: