Virtuelle Hosts für die private Cloud konfigurieren

Sie sehen sich die Dokumentation zu Apigee Edge an.
Rufen Sie die Dokumentation zu Apigee X auf.
Weitere Informationen

Bei einer lokalen Installation haben Sie vollständige Kontrolle über virtuelle Hosts. Sie können virtuelle Hosts für jede Organisation und in jeder 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 solcher zum Erstellen von virtuellen Hosts, die TLS unterstützen, finden Sie unter TLS-Zugriff auf eine API für die Private Cloud konfigurieren.

Weitere Informationen:

Host-Aliasse

Beim Erstellen des virtuellen Hosts 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 Host-Aliasse, 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 Host-Alias eines virtuellen Hosts übereinstimmt, oder geben Sie die IP-Adresse des Routers und den Host-Header an, der den Host-Alias enthält.

Wenn Sie beispielsweise einen virtuellen Host mit dem Host-Alias myapis.apigee.net an Port 9001 erstellt haben, könnte 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 Host-Alias auf die IP-Adresse des Routers und den Port des virtuellen Hosts festlegen, z. B. routerIP:port. Beispiel:

192.168.1.31:9001

Wenn Sie einen curl-Befehl im folgenden Format erstellen:

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 Host-Alias hinzu und geben Sie die IP-Adresse jedes Routers und den Port des virtuellen Hosts an.

Alternativ können Sie den Host-Alias auf einen Wert wie temp.hostalias.com festlegen. In diesem Fall 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 Host-Alias der Datei /etc/hosts hinzufügen. Fügen Sie beispielsweise diese Zeile zu /etc/hosts hinzu:

192.168.1.31 temp.hostalias.com

Dann können Sie eine Anfrage stellen, als ob Sie einen DNS-Eintrag hätten:

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

Virtual Host-Ports auf Edge für Private Cloud 4.16.01 und höher

Wenn Sie einen virtuellen Host erstellen, geben Sie den Routerport an, der vom virtuellen Host verwendet wird. Beispiel: Port 9001.

In Apigee for Private Cloud-Releases ab 4.16.01 wird der Router standardmäßig als Nutzer „apigee“ ausgeführt, der keinen Zugriff auf privilegierte Ports hat, in der Regel Ports 1024 und niedriger. Wenn Sie einen virtuellen Host erstellen möchten, der den Router an einen geschützten Port bindet, müssen Sie den Router 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 for Private Cloud erstellen. Sie müssen Organisationsadministrator sein, um einen neuen virtuellen Host erstellen zu können.

Sie können virtuelle Hosts für Apigee Edge for Private Cloud entweder über die API oder die 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-Benutzeroberfläche).

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 Verwaltung > Virtuelle Hosts aus.
  3. Wählen Sie die Umgebung aus der Drop-down-Liste aus.

    In Edge wird eine Liste der virtuellen Hosts für diese Umgebung angezeigt.

  4. Wenn Sie einen neuen virtuellen Host erstellen möchten, wählen Sie + Virtueller Host aus.

    In Edge wird das Formular Virtuellen Host erstellen angezeigt.

    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. Fügen Sie dem Wert des Felds also „http://“ oder „https://“ vor.

    Beachten Sie außerdem Folgendes:

    • Die Anzahl der virtuellen Hosts, die Sie erstellen können, ist nicht begrenzt.
    • TLS ist optional und kann Version 1.0, 1.1 oder 1.2 sein.
    • 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

Wenn Sie einen virtuellen Host mit der API erstellen möchten, erstellen Sie ein XML-Objekt, das den virtuellen Host definiert. Im folgenden XML-Objekt wird beispielsweise ein virtueller Host definiert, der das HTTP-Protokoll verwendet:

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

Beachten Sie, dass der virtuelle Host eine name-Property enthält. Mit dem Wert der Eigenschaft 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 folgende Adresse senden:

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 die Portnummer des virtuellen Hosts.
  • proxy-base-path und resource-path werden beim Erstellen des API-Proxys definiert.

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://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 Beispiel oben würden Sie einen Hostalias von 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 mit der Create a Virtual Host API (Virtuellen Host erstellen). Dabei ist ms-IP die IP-Adresse oder der Domainname des Management-Server-Knotens:
    $ 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 Element <HTTPConnection> im Proxyendpunkt hinzu. Der virtuelle Host wird allen neuen API-Proxys automatisch 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 mit der Update a Virtual Host API, wobei <ms-IP> die IP-Adresse oder der Domainname des Verwaltungsserverknotens ist. Sie müssen die vollständige Definition des virtuellen Hosts im Anfragetext angeben, 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: Wenn Sie einen vorhandenen virtuellen Host ändern und TLS entweder aktivieren oder deaktivieren, ohne die Portnummer zu ändern, gilt Folgendes:
    1. Halten Sie den Router an:

      /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 Schritt für alle Router.