Virtuellen Host einrichten

Edge for Private Cloud v. 4.17.01

Ein virtueller Host in Edge definiert die Domains und Edge-Router-Ports, über die ein API-Proxy bereitgestellt wird, und damit auch die URL, über die Anwendungen auf einen API-Proxy zugreifen. Ein virtueller Host definiert auch, ob auf den API-Proxy über das HTTP-Protokoll oder über das verschlüsselte HTTPS-Protokoll zugegriffen wird.

Im Rahmen des Edge-Onboarding-Prozesses müssen Sie eine Organisation, eine Umgebung und einen virtuellen Host erstellen. Edge bietet den Befehl setup-org, um diesen Vorgang für neue Nutzer zu vereinfachen.

Wenn Sie den virtuellen Host erstellen, müssen Sie die folgenden Informationen angeben:

  • Der Name des virtuellen Hosts, den Sie in Ihren API-Proxys verwenden, um darauf zu verweisen.
  • Der Port auf dem Router für den virtuellen Host. In der Regel beginnen diese Ports bei 9001 und werden für jeden neuen virtuellen Host um eins erhöht.
  • Der Hostalias des virtuellen Hosts. In der Regel der DNS-Name des virtuellen Hosts.

Der Edge-Router vergleicht den Host-Header der eingehenden Anfrage mit der Liste der verfügbaren Host-Aliase, 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 auf Port 9001 erstellt haben, kann eine cURL-Anfrage an eine API über diesen virtuellen Host eine der folgenden Formen haben:

  • 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 Host-Alias im Host-Header.

    Hinweis: Der curl-Befehl, die meisten Browser und viele andere Dienstprogramme hängen den Host-Header automatisch mit der Domain als Teil der Anfrage an, sodass Sie einen curl-Befehl in folgender Form verwenden können:


    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

Führen Sie dann einen curl-Befehl im folgenden Format aus:

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

Oder fügen Sie den Host-Alias der Datei /etc/hosts hinzu. Fügen Sie beispielsweise diese Zeile zu /etc/hosts hinzu:

192.168.1.31   temp.hostalias.com

Anschließend können Sie eine Anfrage stellen, als hätten Sie einen DNS-Eintrag:

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

Geschützten Port in einem virtuellen Host verwenden

Wenn Sie einen virtuellen Host erstellen möchten, der den Router an einen geschützten Port bindet, z. B. Portnummern kleiner als 1024, müssen Sie den Router so konfigurieren, dass er als Nutzer mit Zugriff auf diese Ports ausgeführt wird. Standardmäßig wird der Router als Nutzer „apigee“ ausgeführt, der keinen Zugriff auf privilegierte Ports hat.

So führen Sie den Router als anderer Nutzer aus:

  1. Erstellen Sie als Root die Datei /opt/apigee/etc/edge-router.d/RUN_USER.sh.
  2. Fügen Sie der Datei den folgenden Eintrag hinzu:
    RUN_USER=root
    Wenn Sie den Router nicht als Root ausführen möchten, geben Sie einen Nutzer mit Zugriff auf den Port an.
  3. Speichern Sie die Datei.
  4. Wenn Sie einen anderen Nutzer als „root“ angegeben haben, ändern Sie den Inhaber der Datei in diesen Nutzer:
    > chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. Starten Sie den Router neu:
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart