Virtuelle Hosts für die private Cloud konfigurieren

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

In einer lokalen Installation haben Sie die vollständige Kontrolle über virtuelle Hosts. Sie können virtuelle Hosts für jede Organisation und jede Umgebung mit oder ohne TLS erstellen.

In diesem Dokument wird beschrieben, wie Sie einen einfachen virtuellen Host erstellen. Das heißt, ein Gerät, das TLS nicht unterstützt. Weitere Beispiele einschließlich Beispielen zum Erstellen virtueller Hosts, die TLS unterstützen, finden Sie unter TLS-Zugriff auf eine API für die Private Cloud konfigurieren.

Weitere Informationen:

Host-Aliasse

Wenn Sie den virtuellen Host erstellen, müssen Sie den Hostalias des virtuellen Hosts angeben. In der Regel ist dies der DNS-Name des virtuellen Hosts.

Der Edge Router vergleicht den Host-Header der eingehenden Anfrage mit der Liste der verfügbaren Hostaliasse, um den API-Proxy zu bestimmen, der die Anfrage verarbeitet. Wenn Sie eine Anfrage über einen virtuellen Host stellen, geben Sie entweder einen Domainnamen an, der mit dem Hostalias eines virtuellen Hosts übereinstimmt, oder geben Sie die IP-Adresse des Routers und den Host-Header an, der den Hostalias enthält.

Wenn Sie beispielsweise einen virtuellen Host mit dem Hostalias myapis.apigee.net an Port 9001 erstellt haben, kann eine cURL-Anfrage an eine API über diesen virtuellen Host eine der folgenden Formen verwenden:

  • Wenn Sie einen DNS-Eintrag für myapis.apigee.net haben:

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Wenn Sie keinen DNS-Eintrag für myapis.apigee.net haben:

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    In diesem Formular geben Sie die IP-Adresse des Routers an und übergeben den Hostalias im Host-Header.

    curl http://routerIP:9001/proxy-base-path/resource-path

Optionen, wenn Sie keinen DNS-Eintrag für den virtuellen Host haben

Wenn Sie keinen DNS-Eintrag haben, können Sie den Hostalias auf die IP-Adresse des Routers und den Port des virtuellen Hosts als routerIP:port festlegen. Beispiel:

192.168.1.31:9001

Wenn Sie einen curl-Befehl im folgenden Format ausführen:

curl http://routerIP:9001/proxy-base-path/resource-path

Diese Option wird bevorzugt, da sie gut mit der Edge-Benutzeroberfläche funktioniert.

Wenn Sie mehrere Router haben, fügen Sie für jeden Router einen Hostalias hinzu und geben Sie die IP-Adresse jedes Routers sowie den Port des virtuellen Hosts an.

Alternativ können Sie den Hostalias auf einen Wert wie temp.hostalias.com festlegen. Dann müssen Sie den Host-Header bei jeder Anfrage übergeben:

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

Alternativ können Sie den Hostalias zur Datei /etc/hosts hinzufügen. Fügen Sie beispielsweise diese Zeile zu /etc/hosts hinzu:

192.168.1.31 temp.hostalias.com

Sie können dann eine Anfrage wie einen DNS-Eintrag stellen:

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

Informationen zu virtuellen Hostports in Edge für die Private Cloud 4.16.01 und höher

Beim Erstellen eines virtuellen Hosts geben Sie den vom virtuellen Host verwendeten Router-Port an. Beispiel: Port 9001.

Bei Apigee for Private Cloud-Releases 4.16.01 und höher wird der Router standardmäßig als Benutzer „apigee“ ausgeführt, der keinen Zugriff auf privilegierte Ports (in der Regel Ports 1024 und niedriger) hat. Wenn Sie einen virtuellen Host erstellen möchten, der den Router an einen geschützten Port bindet, müssen Sie ihn so konfigurieren, dass er als Nutzer mit Zugriff auf diese Ports ausgeführt wird. Weitere Informationen finden Sie unter Virtuellen Host einrichten.

Virtuelle Hosts erstellen

In diesem Abschnitt wird beschrieben, wie Sie virtuelle Hosts für Apigee Edge für Private Cloud erstellen. Beachten Sie, dass Sie Organisationsadministrator sein müssen, um einen neuen virtuellen Host zu erstellen.

Sie können virtuelle Hosts für Apigee Edge für Private Cloud entweder mithilfe der API oder der Edge-Benutzeroberfläche erstellen. Diese werden in den folgenden Abschnitten beschrieben.

Virtuellen Host mit einem Browser erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen virtuellen Host mit einem Browser erstellen (nur Edge-UI).

So erstellen Sie einen neuen virtuellen Host in der Edge-Benutzeroberfläche:

  1. Melden Sie sich bei der Edge-Verwaltungsbenutzeroberfläche an.
  2. Wählen Sie Admin > Virtuelle Hosts aus.
  3. Wählen Sie die Umgebung aus der Drop-down-Liste aus.

    Edge zeigt eine Liste der virtuellen Hosts für diese Umgebung an.

  4. Wählen Sie + Virtueller Host aus, um einen neuen virtuellen Host zu erstellen.

    Edge zeigt das Formular Create Virtual Host (Virtuellen Host erstellen) an.

    Sie können auch auf den Namen eines vorhandenen virtuellen Hosts klicken, um ihn zu bearbeiten.

  5. Definieren Sie den neuen virtuellen Host. Das Feld Basis-URL muss das Protokoll enthalten, d. h., dem Wert des Felds muss „http://“ oder „https://“ vorangestellt werden.

    Beachten Sie außerdem Folgendes:

    • Sie können beliebig viele virtuelle Hosts erstellen
    • TLS ist optional und kann in den Versionen 1.0, 1.1 oder 1.2 verwendet werden
    • Der Port des virtuellen Hosts ist konfigurierbar
  6. Klicken Sie auf die Schaltfläche Erstellen, um den neuen virtuellen Host zu speichern.

Virtuellen Host mit der API erstellen

Um einen virtuellen Host mit der API zu erstellen, erstellen Sie ein XML-Objekt, das den virtuellen Host definiert. Das folgende XML-Objekt definiert beispielsweise einen virtuellen Host, der das HTTP-Protokoll verwendet:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

Der virtuelle Host enthält das Attribut name. Mit dem Wert des Attributs name konfigurieren Sie einen API-Proxy für die Verwendung des virtuellen Hosts.

Sie können dann über diesen virtuellen Host auf einen API-Proxy zugreifen, indem Sie eine Anfrage an:

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

Wobei:

  • http oder https: Wenn der virtuelle Host für die Unterstützung von TLS konfiguriert ist, verwenden Sie HTTPS. Wenn der virtuelle Host TLS nicht unterstützt, verwenden Sie HTTP.
  • routerIP:port ist die IP-Adresse und Portnummer des virtuellen Hosts.
  • proxy-base-path und resource-path werden beim Erstellen des API-Proxys definiert.

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://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Wenn Sie den DNS-Eintrag definieren, müssen Sie einen Hostalias für den virtuellen Host erstellen, der mit dem Domainnamen des DNS-Eintrags übereinstimmt. Der Hostalias muss mit dem String übereinstimmen, den der Client im Host-Header übergibt. Im obigen Beispiel würden Sie den Hostalias api.myCompany.com angeben.

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

So erstellen Sie einen virtuellen Host, der das HTTP-Protokoll verwendet:

  1. Erstellen Sie den virtuellen Host mithilfe der Create a Virtual Host API, wobei ms-IP die IP-Adresse oder der Domainname des Verwaltungsserver-Knotens ist:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. Erstellen Sie den DNS-Eintrag für den virtuellen Host, der mit dem Hostalias übereinstimmt.
  3. Wenn Sie bereits API-Proxys haben, fügen Sie den virtuellen Host dem <HTTPConnection>-Element im Proxy-Endpunkt hinzu. Der virtuelle Host wird automatisch allen neuen API-Proxys hinzugefügt. Weitere Informationen finden Sie unter API-Proxy für die Verwendung eines virtuellen Hosts konfigurieren.

Virtuellen Host ändern

So ändern Sie einen virtuellen Host:

  1. Aktualisieren Sie den virtuellen Host mithilfe der Update a Virtual Host API, wobei <ms-IP> die IP-Adresse oder der Domainname des Verwaltungsserver-Knotens ist. Geben Sie im Anfragetext die vollständige Definition des virtuellen Hosts an, nicht nur die Elemente, die Sie ändern möchten. In diesem Beispiel ändern Sie die Portnummer des virtuellen Hosts von 9008 in 9009:

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. Nur für Edge for Private Cloud-Versionen 4.16.01 und 4.16.05 gilt: Wenn Sie einen vorhandenen virtuellen Host ändern und entweder TLS aktivieren oder TLS deaktivieren, ohne die Portnummer zu ändern, gehen Sie so vor:
    1. Beenden Sie den Router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Löschen Sie alle Dateien in /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Starten Sie den Router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Wiederholen Sie diesen Vorgang für alle Router.