Ein virtueller Host in Edge definiert die Domains und Edge Router-Ports, auf denen ein API-Proxy verfügbar gemacht wird, und somit die URL, über die Apps auf einen API-Proxy zugreifen. Ein virtueller Host definiert außerdem, ob auf den API-Proxy über das HTTP-Protokoll oder 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.
Beim Erstellen des virtuellen Hosts müssen Sie die folgenden Informationen angeben:
- Der Name des virtuellen Hosts, mit dem Sie in Ihren API-Proxys darauf verweisen.
- Der Port des Routers für den virtuellen Host. In der Regel beginnen diese Ports mit 9.001 und erhöhen sich für jeden neuen virtuellen Host um eins.
- Host-Alias des virtuellen Hosts. In der Regel der DNS-Name des virtuellen Hosts.
In einer Konfigurationsdatei, die an den Befehl setup-org
übergeben wird, können Sie diese Informationen beispielsweise 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 Host-Aliasse im Rahmen der Bestimmung des API-Proxys, der die Anfrage verarbeitet. Wenn Sie eine Anfrage über einen virtuellen Host senden, 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 eines der folgenden Formate 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 Header
Host
.
Optionen, wenn Sie keinen DNS-Eintrag für den virtuellen Host haben
Wenn Sie keinen DNS-Eintrag haben, können Sie den Host-Alias als routerIP:port auf die IP-Adresse des Routers und den Port des virtuellen Hosts festlegen. Beispiel:
VHOST_ALIAS=192.168.1.31:9001
Führen Sie dann den Befehl „curl“ in der folgenden Form aus:
curl http://routerIP:9001/proxy-base-path/resource-path
Diese Option wird bevorzugt, weil 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-Adressen der einzelnen Router und Ports 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 Host-Alias auf einen Wert festlegen, z. B. temp.hostalias.com
.
Anschließend 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 zu Ihrer /etc/hosts
-Datei hinzufügen. Fügen Sie beispielsweise /etc/hosts
folgende Zeile hinzu:
192.168.1.31 temp.hostalias.com
Anschließend können Sie so eine Anfrage stellen, als ob Sie einen DNS-Eintrag hätten:
curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path