Virtuelle Hosts

Sie lesen die Dokumentation zu Apigee Edge.
Sehen Sie sich die Apigee X-Dokumentation an.
info

In Edge wird der gesamte einkommende API-Traffic von einem Router verarbeitet. 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. Für Edge entspricht der Server einem Edge-Router. Wenn Sie mehrere virtuelle Hosts auf einem Router definieren, kann der Router API-Anfragen an mehrere Domainnamen verarbeiten.

Ein virtueller Host auf Edge definiert das Zugriffsprotokoll (HTTP oder HTTPS), einen offenen Routerport und einen Hostalias. Der Host-Alias ist in der Regel 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 an die Domain domainName1 und der zweite HTTP-Anfragen an domainName2.

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

Definitionen für virtuelle Hosts

Virtuelle Hosts enthalten die folgenden Informationen:

  • Der interne Name des virtuellen Hosts. Sie verwenden diesen Namen, um in Ihren API-Proxys und bei der Konfiguration des virtuellen Hosts auf den virtuellen Host zu verweisen.
  • Der Host-Alias des virtuellen Hosts. Normalerweise ist der Host-Alias der DNS-Domainname, der der IP-Adresse auf dem Router zugeordnet ist. Der Host-Header einer API-Proxy-Anfrage muss den Hostalias des virtuellen Hosts enthalten.
  • Einen offenen Port am 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
  • Host-Alias = apis.acme.com
  • Port = 443
  • TLS ist aktiviert

Basierend auf der obigen Einstellung für den virtuellen Host verwendet eine Anfrage an einen API-Proxy das folgende Formular:

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

Virtuelle Hosts in Edge for the 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 Host-Alias jedes von Apigee bereitgestellten virtuellen Hosts enthält den Namen der Organisation und der Umgebung, wie in der folgenden Tabelle gezeigt:

Umgebung Name des virtuellen Hosts Host-Alias Port TLS aktiviert
prod Standard {org-name}-prod.apigee.net 80 Nein
sicher {org-name}-prod.apigee.net 443 Ja
Test Standard {org-name}-test.apigee.net 80 Nein
sicher {org-name}-test.apigee.net 443 Ja

Der Standarddomainname einer Organisation namens „myorg“ in der prod-Umgebung ist beispielsweise „myorg-prod.apigee.net“. Daher verwenden Sie eine URL für den Zugriff auf einen API-Proxy in dieser Organisation:

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

Apigee-kostenpflichtige Abos:Ein Domainname, der „apigee.net“ enthält, ist möglicherweise nicht geeignet, um ihn Ihren Kunden zu präsentieren. Sie können einen DNS-Eintrag und einen CNAME-Eintrag verwenden, um einen Domainnamen Ihrer Organisation in Edge zuzuordnen. Sie müssen außerdem einen virtuellen Host erstellen, bei dem das Host-Alias auf diesen Domainnamen festgelegt ist. So können Entwickler über eine für Ihr Unternehmen spezifische Domain auf Ihre API zugreifen.

Hier 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 Private Cloud installieren, werden keine Standardorganisationen, ‑umgebungen oder ‑virtuellen Hosts für Sie erstellt. Nachdem Sie die Edge-Installation abgeschlossen haben, erstellen Sie in der Regel als Erstes eine Organisation, eine Umgebung und einen virtuellen Host über den Onboarding-Prozess.

Führen Sie zum Onboarding den folgenden Befehl auf dem Edge Management Server-Knoten aus:

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

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

Sie können beispielsweise Folgendes erstellen:

  • Einen Nutzer Ihrer Wahl, der als Organisationsadministrator fungieren soll
  • 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 der Port des virtuellen Hosts im Format IP:9001.

Sie können Ihrer On-Premises-Version von Edge später beliebig viele Organisationen, Umgebungen und virtuelle Hosts hinzufügen. Weitere Informationen finden Sie unter:

Virtuelle Hosts werden auf dem Edge Router geöffnet. Daher müssen Sie dafür sorgen, dass der Port, den Sie für den virtuellen Host angeben, auf dem Router geöffnet ist. 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}

Normalerweise veröffentlichen Sie Ihre APIs nicht für Kunden mit einer IP-Adresse und einer Portnummer. 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 Beispiel oben würden Sie beim Erstellen des virtuellen Hosts einen Hostalias von myAPI.myCo.com angeben.

Host-Aliasse und DNS-Namen

Eine Eigenschaft, die Sie für einen virtuellen Host festlegen, ist der Host-Alias. 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.

Host-Aliasse und DNS-Namen in Edge for the 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 (default und secure) sowie 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 das folgende Format:

  • 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 sollten Sie virtuelle Hosts erstellen, die Ihren Domainnamen verwenden, anstatt die Standarddomain apigee.net zu verwenden. Dazu müssen Sie zuerst Ihren eigenen DNS-Eintrag und CNAME-Eintrag erstellen.

Die folgende Abbildung zeigt eine typische Konfiguration für die Verarbeitung einer API-Anfrage durch Edge:

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, anhand dessen der Router den virtuellen Host ermittelt, der die Anfrage verarbeitet.

In diesem Beispiel geben Sie die folgenden Informationen in einer virtuellen Hostdefinition an:

  • name = myvhost
  • Host-Alias = apis.acme.com
  • port = 443
  • TLS-Zugriff aktivieren

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

Hostaliasse und DNS-Namen in Edge for Private Cloud

Wie bei Edge for the Cloud erstellen Sie virtuelle Hosts, die Ihren eigenen Domainnamen für den Alias des Hosts verwenden. Anschließend erstellen Sie Ihren eigenen DNS-Eintrag und einen eigenen CNAME-Eintrag, um auf diese virtuellen Hosts zuzugreifen.

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

  • name=default: http://{org-name}-{env-name}.apigee.net (Routerport 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Routerport 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.

Sie geben diese Informationen beispielsweise in einer virtuellen Hostdefinition an:

  • name = myvhost
  • Host-Alias = 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, anhand dessen der Router den virtuellen Host ermittelt, der die Anfrage verarbeitet.

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

Hostaliasse und Platzhalter

Sie können den Platzhalter „*“ in den Hostalias aufnehmen. Das Platzhalterzeichen „*“ darf nur am Anfang (vor dem ersten „.“) des Hostalias stehen und darf nicht mit anderen Zeichen kombiniert werden.

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

*.example.com

Die folgenden Beispiele sind ungültig:

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

Mit einem Platzhalter in einem virtuellen Host-Alias können API-Proxys Aufrufe an mehrere Subdomains wie alpha.example.com, beta.example.com oder live.example.com verarbeiten. Mit einem Platzhalteralias können Sie auch 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 einen übereinstimmenden Platzhalter im CN-Namen des Zertifikats haben. Beispiel: *.example.com.

Virtuelle Host-Properties

In Edge wird ein virtueller Host durch ein XML-Objekt dargestellt. Im folgenden XML-Objekt wird beispielsweise ein virtueller Host definiert:

<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 Eigenschaften, 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 Properties auch von Ihrer Edge-Version ab. Eine vollständige Beschreibung aller Properties eines virtuellen Hosts finden Sie unter Referenz zu Virtual-Host-Properties.

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