Virtuellen Host einrichten

Edge for Private Cloud Version 4.17.05

Ein virtueller Host in Edge definiert die Domains und Edge-Router-Ports, auf denen ein API-Proxy verfügbar gemacht wird, und folglich auch die URL, mit der Apps auf einen API-Proxy zugreifen. Ein virtueller Host definiert außerdem, ob der Zugriff auf den API-Proxy über das HTTP-Protokoll oder über das verschlüsselte HTTPS-Protokoll erfolgt.

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, mit dem Sie in Ihren API-Proxys darauf verweisen.
  • Port des Routers für den virtuellen Host. Normalerweise beginnen diese Ports bei 9001 und werden mit jedem neuen virtuellen Host um 1 erhöht.
  • Hostalias des virtuellen Hosts. In der Regel der DNS-Name des virtuellen Hosts.

Sie können diese Informationen beispielsweise in einer Konfigurationsdatei, die an den Befehl setup-org übergeben wird, so angeben:

# Specify virtual host information.
VHOST_PORT=9001
VHOST_NAME=default

# If you have a DNS entry for the virtual host.
VHOST_ALIAS=myapis.apigee.net

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 Header Host 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 ein DNS-Eintrag für myapis.apigee.net vorhanden ist:

    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 Sie den Hostalias im Host-Header.

    Hinweis: Durch den cURL-Befehl, die meisten Browser und viele andere Dienstprogramme wird automatisch der Header Host mit der Domain als Teil der Anfrage angehängt, sodass Sie einen cURL-Befehl im folgenden Format 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 Hostalias auf die IP-Adresse des Routers und den Port des virtuellen Hosts als <routerIP>:port festlegen. Beispiel:

VHOST_ALIAS=192.168.1.31:9001

Dann führen Sie einen curl-Befehl in der folgenden Form 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 Hostalias hinzu und geben Sie die IP-Adresse jedes Routers und den Port des virtuellen Hosts an:

# Specify the IP and port of each router as a space-separated list enclosed in quotes:
# VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"

Alternativ können Sie den Hostalias auf einen Wert wie temp.hostalias.com festlegen. Dann müssen Sie den Header Host 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}

Geschützten Port in einem virtuellen Host verwenden

Wenn Sie einen virtuellen Host erstellen möchten, der den Router an einen geschützten Port (z. B. Portnummern unter 1.000) bindet, 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 ein 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. Speichere die Datei.
  4. Wenn Sie einen anderen Benutzer als Root angegeben haben, ändern Sie den Eigentümer der Datei in diesen Benutzer:
    > Geben Sie NUTZER:BENUTZER /opt/apigee/etc/edge-router.d/RUN_USER.sh an:
  5. Router neu starten:
    > /opt/apigee/apigee-service/bin/apigee-service-Edge-Router-Neustart