Virtuelle Hosts

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In Edge verarbeitet ein Router den gesamten eingehenden API-Traffic. Das bedeutet, dass alle HTTP- und HTTPS-Anfragen an einen API-Proxy zuerst von einem Edge Router verarbeitet werden.

Mit einem virtuellen Host können Sie mehrere Domainnamen auf einem Server hosten. Bei Edge entspricht der Server einem Edge Router. Durch die Definition mehrerer virtueller Hosts auf einem Router kann der Router API-Anfragen an mehrere Domainnamen verarbeiten.

Ein virtueller Host in Edge definiert das Zugriffsprotokoll (HTTP oder HTTPS), einen offenen Router-Port und einen Hostalias. Der Host-Alias ist normalerweise der DNS-Domainname, der der IP-Adresse des Routers zugeordnet ist.

Die folgende Abbildung zeigt beispielsweise einen Router mit zwei virtuellen Hostdefinitionen:

Der erste virtuelle Host verarbeitet HTTPS-Anfragen in der Domain domainName1 und der zweite HTTP-Anfragen an domainName2.

Bei einer Anfrage an einen API-Proxy vergleicht der Router den Host-Header der eingehenden Anfrage mit der Liste der Hostaliasse, die von allen virtuellen Hosts definiert werden, um zu bestimmen, welcher virtuelle Host die Anfrage verarbeitet.

Definitionen virtueller Hosts

Virtuelle Hosts enthalten die folgenden Informationen:

  • Der interne Name des virtuellen Hosts. Sie verwenden diesen Namen, um auf den virtuellen Host in Ihren API-Proxys zu verweisen und beim Konfigurieren des virtuellen Hosts.
  • Der Hostalias des virtuellen Hosts. In der Regel ist der Hostalias der DNS-Domainname, der der IP-Adresse des Routers zugeordnet ist. Der Host-Header einer API-Proxy-Anfrage muss den Hostalias des virtuellen Hosts enthalten.
  • Einen offenen Port auf dem Router.
  • Gibt an, ob TLS (HTTPS-Zugriff) aktiviert ist oder nicht (HTTP-Zugriff).

Wenn Sie einen virtuellen Host erstellen, geben Sie beispielsweise die folgenden Informationen an:

  • name = myvhost
  • Hostalias = apis.acme.com
  • Port = 443
  • TLS ist aktiviert

Basierend auf der obigen Einstellung für den virtuellen Host wird bei einer Anfrage an einen API-Proxy das folgende Format verwendet:

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

Dabei gilt:

  • {proxy-base-path} wird beim Erstellen eines API-Proxys definiert und ist für jeden API-Proxy eindeutig. Beispiel:
    https://apis.acme.com/characters
  • {resource-path} ist der Pfad zu einer Ressource, auf die über den API-Proxy zugegriffen werden kann. Beispiel:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Informationen zu virtuellen Hosts in Edge für die Cloud

Jede Edge-Organisation umfasst automatisch zwei Umgebungen (test und prod), zwei virtuelle Hosts in jeder Umgebung (Standard und secure) sowie DNS-Einträge für jeden Hostalias.

Der Hostalias jedes von Apigee bereitgestellten virtuellen Hosts enthält den Namen der Organisation und der Umgebung, wie in der folgenden Tabelle dargestellt:

Environment Name des virtuellen Hosts Host alias Port TLS aktiviert
prod Standardeinstellung {org-name}-prod.apigee.net 80 Nein
geschützt? {org-name}-prod.apigee.net 443 Ja
Test Standardeinstellung {org-name}-test.apigee.net 80 Nein
geschützt? {org-name}-test.apigee.net 443 Ja

Der Standarddomainname einer Organisation namens „myorg“ in der Umgebung prod ist beispielsweise „myorg-prod.apigee.net“. Um auf einen API-Proxy in dieser Organisation zuzugreifen, verwenden Sie daher eine URL im folgenden Format:

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

Kostenpflichtige Apigee-Tarife: Ein Domainname, der "apigee.net" enthält, ist möglicherweise nicht das, was Sie Ihren Kunden zur Verfügung stellen möchten. Sie können einen DNS-Eintrag und einen CNAME-Eintrag verwenden, um Ihrer Organisation in Edge einen Domainnamen zuzuordnen. Außerdem müssen Sie einen virtuellen Host erstellen, bei dem der Hostalias auf diesen Domainnamen festgelegt ist. So können Entwickler über eine unternehmensspezifische Domain auf Ihre API zugreifen.

Hier ist ein Beispiel für eine benutzerdefinierte Domain in Edge:

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

Informationen zu virtuellen Hosts in Edge für Private Cloud

Wenn Sie Apigee Edge für die Private Cloud installieren, werden keine Standardorganisationen, -umgebungen oder -virtuellen Hosts für Sie erstellt. Nachdem Sie die Edge-Installation abgeschlossen haben, besteht Ihre erste Aktion in der Regel darin, im Rahmen des Onboarding-Prozesses eine Organisation, eine Umgebung und einen virtuellen Host zu erstellen.

Führen Sie den folgenden Befehl auf dem Edge Management Server-Knoten aus, um das Onboarding durchzuführen:

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

Dabei enthält configFile die Informationen, die zum Erstellen eines Nutzers, einer Organisation, einer Umgebung und eines virtuellen Hosts erforderlich sind.

Sie erstellen beispielsweise:

  • Ein Nutzer Ihrer Wahl, der als Organisationsadministrator fungiert.
  • Eine Organisation mit dem Namen example
  • Eine Umgebung in der Organisation mit dem Namen prod
  • Ein virtueller Host in der Umgebung mit dem Namen default, der HTTP-Zugriff auf Port 9001 zulässt
  • Ein Hostalias des DNS-Namens, der für den Zugriff auf den Router verwendet wird, oder die IP-Adresse des Routers und den Port des virtuellen Hosts im Format IP:9001.

Sie können Ihrer lokalen Version von Edge später eine beliebige Anzahl von Organisationen, Umgebungen und virtuellen Hosts hinzufügen. Weitere Informationen finden Sie unter:

Virtuelle Hosts werden auf dem Edge Router geöffnet. Daher muss der für den virtuellen Host angegebene Port auf dem Router offen sein. Sie können einen Befehl im folgenden Format verwenden, um einen Port zu öffnen:

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

Nachdem Sie diesen Befehl ausgeführt haben, können Sie mithilfe einer URL im folgenden Format auf Ihre APIs zugreifen:

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

In der Regel werden APIs nicht mit einer IP-Adresse und Portnummer für Kunden veröffentlicht. Stattdessen definieren Sie einen DNS-Eintrag für den Router und den Port. Beispiel:

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

Wenn Sie den DNS-Eintrag definieren, müssen Sie auch einen virtuellen Host mit einem Hostalias erstellen, der mit dem Domainnamen des DNS-Eintrags übereinstimmt. Im obigen Beispiel würden Sie beim Erstellen des virtuellen Hosts den Hostalias myAPI.myCo.com angeben.

Host-Aliasse und DNS-Namen

Eine Eigenschaft, die Sie für einen virtuellen Host festlegen, ist der Hostalias. Der Hostalias ist in der Regel der DNS-Name des virtuellen Hosts. Wie Sie den Hostalias festlegen, hängt von der Art der Edge-Installation ab: Cloud oder Private Cloud.

Hostaliasse und DNS-Namen in Edge für die Cloud

Wenn Sie in Edge for the Cloud zum ersten Mal eine Edge-Organisation erstellen, erstellt Apigee automatisch zwei Umgebungen (test und prod), zwei virtuelle Hosts in jeder Umgebung (Standard und secure) und DNS-Einträge für jeden virtuellen Host.

Der Hostalias der virtuellen Hosts enthält den Namen der Organisation und der Umgebung. Eine Anfrage über einen virtuellen Host hat daher die folgende Form:

  • 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}

In der Regel möchten Sie virtuelle Hosts erstellen, die Ihren Domainnamen verwenden, anstatt die Standarddomain apigee.net zu verwenden. Dazu müssen Sie zuerst einen eigenen DNS-Eintrag und CNAME-Eintrag erstellen.

Die folgende Abbildung zeigt eine typische Konfiguration dafür, wie Edge eine API-Anfrage verarbeitet:

In diesem Fall gilt Folgendes:

  • api.acme.com ist der gewünschte Domainname.
  • Sie definieren einen DNS-Eintrag und einen CNAME-Eintrag, um api.acme.com auf acme-prod.apigee.net zu verweisen.
  • Die Anfrage enthält den Header Host, mit dem der Router den virtuellen Host ermittelt, der die Anfrage verarbeitet.

In diesem Beispiel geben Sie die folgenden Informationen in der Definition eines virtuellen Hosts an:

  • name = myvhost
  • Hostalias = apis.acme.com
  • Port = 443
  • TLS-Zugriff aktivieren

Weitere Informationen finden Sie unter Virtuelle Hosts für die Cloud konfigurieren.

Hostalias und DNS-Namen in Edge für Private Cloud

Wie bei Edge für die Cloud erstellen Sie virtuelle Hosts, die Ihren eigenen Domainnamen als Hostalias verwenden. Anschließend erstellen Sie Ihren eigenen DNS-Eintrag und CNAME-Eintrag, um auf diese virtuellen Hosts zuzugreifen.

Einer der Unterschiede zwischen der Cloud und der privaten Cloud besteht darin, dass in Cloud Apigee automatisch DNS-Namen für Ihre Organisationen in folgendem Format erstellt wurden:

  • name=default: http://{org-name}-{env-name}.apigee.net (Router port 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Router port 443)

In Edge für die Private Cloud müssen Sie die DNS-Einträge für die IP-Adresse und den Port Ihres Routers erstellen.

Beispielsweise geben Sie diese Informationen in der Definition eines virtuellen Hosts an:

  • name = myvhost
  • Hostalias = apis.acme.com
  • Port = 9001
  • TLS-Zugriff aktivieren

Die folgende Abbildung zeigt eine typische Konfiguration dafür, wie Edge eine API-Anfrage verarbeitet:

In diesem Fall gilt Folgendes:

  • api.acme.com ist der gewünschte Domainname.
  • Sie definieren einen DNS-Eintrag und einen CNAME-Eintrag, um api.acme.com auf die IP-Adresse und den Port des Routers zu verweisen.
  • Die Anfrage enthält den Header Host, mit dem der Router den virtuellen Host ermittelt, der die Anfrage verarbeitet.

Weitere Informationen finden Sie unter Virtuelle Hosts für die Private Cloud konfigurieren.

Hostalias und Platzhalter

Sie können das Platzhalterzeichen „*“ in den Hostalias einfügen. Das Platzhalterzeichen „*“ darf nur am Anfang (vor dem ersten „.“) des Hostalias stehen und nicht mit anderen Zeichen vermischt werden.

Im Folgenden finden Sie ein Beispiel für einen gültigen Hostalias mit einem Platzhalter:

*.example.com

Die folgenden Beispiele sind ungültig:

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

Durch die Verwendung eines Platzhalters in einem virtuellen Hostalias können API-Proxys Aufrufe verarbeiten, die an mehrere Subdomains wie alpha.example.com, beta.example.com oder live.example.com adressiert sind. Außerdem können Sie mit einem Platzhalteralias weniger virtuelle Hosts pro Umgebung verwenden, um die Produktlimits einzuhalten, da ein virtueller Host mit einem Platzhalter nur als ein virtueller Host gezählt wird.

Das TLS-Zertifikat für den virtuellen Host muss im CN-Namen des Zertifikats einen übereinstimmenden Platzhalter haben. Beispiel: *.example.com.

Informationen zu den Eigenschaften virtueller Hosts

In Edge wird ein virtueller Host durch ein XML-Objekt dargestellt. Das folgende XML-Objekt definiert beispielsweise einen virtuellen Host:

<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>

Die Liste der Attribute, die Sie festlegen können, hängt davon ab, ob Sie Edge für die Cloud oder Edge für die private Cloud verwenden. Wenn Sie Edge für die Private Cloud verwenden, hängt die Liste der verfügbaren Attribute auch von Ihrer Edge-Version ab. Eine vollständige Beschreibung aller Attribute eines virtuellen Hosts finden Sie unter Referenz zu virtuellen Hostattributen.

Weitere Informationen zum Erstellen virtueller Hosts für Ihre spezielle Version von Edge finden Sie unter: