Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Bei einer lokalen Installation haben Sie die vollständige Kontrolle über virtuelle Hosts. Sie können virtuelle Hosts für jede Organisation und in jeder Umgebung erstellen, mit oder ohne TLS.
In diesem Dokument wird beschrieben, wie Sie einen einfachen virtuellen Host erstellen. Das heißt, einen, der TLS nicht unterstützt. Weitere Beispiele, einschließlich Beispiele zum Erstellen virtueller Hosts, die TLS unterstützen, finden Sie unter TLS Zugriff auf eine API für die Private Cloud konfigurieren.
Weitere Informationen:
- Virtuelle Hosts
- Virtuelle Hosts konfigurieren
- TLS konfigurieren
- Schlüsselspeicher und Truststores
- TLS -Zugriff auf eine API für die Private Cloud konfigurieren
Host-Aliasse
Beim Erstellen des virtuellen Hosts müssen Sie den Host-Alias 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 senden, geben Sie entweder einen Domainnamen an, der mit dem Host
Alias eines virtuellen Hosts übereinstimmt, oder die IP-Adresse des Routers und den Host Header mit dem Host-Alias.
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 dieser Form geben Sie die IP-Adresse des Routers an und übergeben den Host-Alias im
HostHeader.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 in der folgenden Form ausführen:
curl http://routerIP:9001/proxy-base-path/resource-path
Diese Option ist vorzuziehen, 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 von jedem Router 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 Ihrer 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 so stellen, als hätten Sie einen DNS-Eintrag:
curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path
Virtuelle Hostports in Edge for Private Cloud 4.16.01 und höher
Beim Erstellen eines virtuellen Hosts geben Sie den Router-Port an, der vom virtuellen Host verwendet wird. Beispiel: Port 9001.
In Apigee for Private Cloud Version 4.16.01 und höher wird der Router standardmäßig als der 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. Hinweis: Sie müssen Organisationsadministrator sein, um einen neuen virtuellen Host zu erstellen.
Sie können virtuelle Hosts für Apigee Edge for Private Cloud entweder mit 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-Benutzeroberfläche).
So erstellen Sie einen neuen virtuellen Host in der Edge-Benutzeroberfläche :
- Melden Sie sich in der Edge-Verwaltungsbenutzeroberfläche an.
- Wählen Sie Admin > Virtuelle Hosts aus.
Wählen Sie in der Drop-down-Liste die Umgebung aus.
Edge zeigt eine Liste der virtuellen Hosts für diese Umgebung an.
- Wählen Sie + Virtueller Host aus, um einen neuen virtuellen Host zu erstellen.
Edge zeigt das Formular Virtuellen Host erstellen an.
Sie können auch auf den Namen eines vorhandenen virtuellen Hosts klicken, um ihn zu bearbeiten.
- Definieren Sie Ihren neuen virtuellen Host. Das Feld Basis-URL muss das
Protokoll enthalten. Stellen Sie also dem Wert des Felds „http://“ oder „https://“ voran.
Außerdem gilt 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.
- 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. 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 ein name-Attribut. Mit dem Wert des
name -Attributs konfigurieren Sie einen API-Proxy für die Verwendung des virtuellen Hosts.
Sie können dann auf einen API-Proxy über diesen virtuellen Host zugreifen, indem Sie eine Anfrage an folgende Adresse senden:
http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-pathWobei:
httpoderhttps: 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 veröffentlichen Sie Ihre APIs nicht für Kunden mit einer IP-Adresse und 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 Host-Alias für den virtuellen Host
erstellen, der mit dem Domainnamen des DNS-Eintrags übereinstimmt. Der Host-Alias muss mit dem String übereinstimmen, den der
Client im Host Header übergibt.
Im obigen Beispiel würden Sie einen Host-Alias 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:
- Erstellen Sie den virtuellen Host mit der
API zum Erstellen eines
virtuellen Hosts. 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
- Erstellen Sie den DNS-Eintrag für den virtuellen Host, der mit dem Host-Alias übereinstimmt.
- Wenn Sie vorhandene 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:
-
Aktualisieren Sie den virtuellen Host mit der API zum Aktualisieren eines virtuellen Hosts. Dabei ist
<ms-IP>die IP-Adresse oder der Domainname des Management Server-Knotens. 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 -
Nur für Edge for Private Cloud Version 4.16.01 und 4.16.05: Wenn Sie einen vorhandenen virtuellen Host ändern und TLS aktivieren oder deaktivieren, ohne die Portnummer zu ändern, gehen Sie so vor:
Beenden Sie den Router:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
Löschen Sie alle Dateien in
/opt/nginx/conf.d:rm -f /opt/nginx/conf.d/*
Starten Sie den Router:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- Wiederholen Sie den Vorgang für alle Router.