Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
In un'installazione on-premise, hai il controllo completo sugli host virtuali. Puoi creare host virtuali per qualsiasi organizzazione, in qualsiasi ambiente, utilizzando o meno TLS.
Questo documento descrive come creare un host virtuale semplice. Ovvero, uno che non supporta TLS. Per altri esempi, inclusi quelli sulla creazione di host virtuali che supportano TLS, consulta Configurare l'accesso TLS a un'API per Private Cloud.
Scopri di più:
- Informazioni sugli host virtuali
- Configurazione degli host virtuali
- Configurazione di TLS
- Keystore e truststore
- Configurazione dell'accesso TLS a un'API per Private Cloud
Informazioni sugli alias host
Quando crei l'host virtuale, devi specificarne l'alias host. In genere, si tratta del nome DNS dell'host virtuale.
Il router Edge confronta l'intestazione Host della richiesta in entrata con l'
elenco degli alias host disponibili per determinare il proxy API che gestisce la richiesta.
Quando effettui una richiesta tramite un host virtuale, specifica un nome di dominio che corrisponda all'alias host
di un host virtuale oppure specifica l'indirizzo IP del router e l'intestazione Host contenente l'alias host.
Ad esempio, se hai creato un host virtuale con un alias host myapis.apigee.net sulla porta 9001, una richiesta cURL a un'API tramite quell'host virtuale potrebbe utilizzare una delle seguenti forme:
Se hai una voce DNS per myapis.apigee.net:
curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
Se non hai una voce DNS per myapis.apigee.net:
curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'
In questo modulo, devi specificare l'indirizzo IP del router e passare l'alias host nell'
Hostintestazione.curl http://routerIP:9001/proxy-base-path/resource-path
Opzioni quando non hai una voce DNS per l'host virtuale
Un'opzione quando non hai una voce DNS è impostare l'alias host sull'indirizzo IP del router e sulla porta dell'host virtuale, come routerIP:port. Ad esempio:
192.168.1.31:9001
Quando esegui un comando curl nel formato seguente:
curl http://routerIP:9001/proxy-base-path/resource-path
Questa opzione è preferibile perché funziona bene con l'UI Edge.
Se hai più router, aggiungi un alias host per ogni router, specificando l'indirizzo IP di ogni router e la porta dell'host virtuale.
In alternativa, puoi impostare l'alias host su un valore, ad esempio
temp.hostalias.com. Quindi, devi passare l'intestazione Host su ogni richiesta:
curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'
In alternativa, aggiungi l'alias host al file /etc/hosts. Ad esempio, aggiungi questa riga a /etc/hosts:
192.168.1.31 temp.hostalias.com
Dopodiché puoi effettuare una richiesta come se avessi una voce DNS:
curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path
Informazioni sulle porte host virtuali in Edge per Private Cloud 4.16.01 e versioni successive
Quando crei un host virtuale, devi specificare la porta del router utilizzata dall'host virtuale. Ad esempio, la porta 9001.
Per le release 4.16.01 e successive di Apigee per Private Cloud, per impostazione predefinita il router viene eseguito come l' utente "apigee" che non ha accesso alle porte con privilegi, in genere le porte 1024 e inferiori. Se vuoi creare un host virtuale che associa il router a una porta protetta, devi configurare il router in modo che venga eseguito come utente con accesso a queste porte. Per saperne di più, consulta Configurare un host virtuale.
Crea host virtuali
Questa sezione descrive come creare host virtuali per Apigee Edge per Private Cloud. Tieni presente che per creare un nuovo host virtuale devi essere un amministratore dell'organizzazione.
Puoi creare host virtuali per Apigee Edge per Private Cloud utilizzando l'API o l'UI Edge. Questi sono descritti nelle sezioni seguenti.
Crea un host virtuale utilizzando un browser
Questa sezione descrive come creare un host virtuale utilizzando un browser (solo UI Edge).
Per creare un nuovo host virtuale nell'UI Edge:
- Accedi all'UI di gestione di Edge.
- Seleziona Amministratore > Host virtuali.
Seleziona l'ambiente dall'elenco a discesa.
Edge mostra un elenco di host virtuali per quell'ambiente.
- Per creare un nuovo host virtuale, seleziona + Host virtuale.
Edge mostra il modulo Crea host virtuale.
Puoi anche fare clic sul nome di un host virtuale esistente per modificarlo.
- Definisci il nuovo host virtuale. Tieni presente che il campo URL di base deve includere il
protocollo (ovvero, anteponi al valore del campo "http://" o "https://").
Inoltre, tieni presente che:
- Non esiste un limite al numero di host virtuali che puoi creare
- TLS è facoltativo e può essere la versione 1.0, 1.1 o 1.2
- La porta dell'host virtuale è configurabile
- Fai clic sul pulsante Crea per salvare il nuovo host virtuale.
Crea un host virtuale con l'API
Per creare un host virtuale con l'API, crea un oggetto XML che definisca l' host virtuale. Ad esempio, l'oggetto XML seguente definisce un host virtuale che utilizza il protocollo HTTP:
<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>DNS_name_or_IP:port</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9005</Port>
</VirtualHost>Tieni presente che l'host virtuale contiene una proprietà name. Utilizza il valore della
name proprietà per configurare un proxy API in modo che utilizzi l'host virtuale.
Puoi quindi accedere a un proxy API tramite questo host virtuale effettuando una richiesta a:
http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-pathDove:
httpohttps: se l'host virtuale è configurato per supportare TLS, utilizza HTTPS. Se l'host virtuale non supporta TLS, utilizza HTTP.- routerIP:port è l'indirizzo IP e il numero di porta dell'host virtuale.
- proxy-base-path e resource-path vengono definiti quando crei il proxy API.
In genere, non pubblichi le tue API per i clienti con un indirizzo IP e un numero di porta. Definisci invece una voce DNS per il router e la porta. Ad esempio:
http://api.myCompany.com/proxy-base-path/resource-path https://api.myCompany.com/proxy-base-path/resource-path
Se definisci la voce DNS, devi creare un alias host per l'host virtuale
che corrisponda al nome di dominio della voce DNS. L'alias host deve corrispondere alla stringa che il
client passa nell'intestazione Host.
Dall'esempio precedente, devi specificare un alias host api.myCompany.com.
<VirtualHost name="myVHost">
<HostAliases>
<HostAlias>api.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9005</Port>
</VirtualHost>Per creare un host virtuale che utilizza il protocollo HTTP:
- Crea l'host virtuale utilizzando l'API Crea un host virtuale, dove ms-IP è l'indirizzo IP o il nome di dominio del nodo del server di gestione:
$ 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
- Crea il record DNS per l'host virtuale che corrisponda all'alias host.
- Se hai proxy API esistenti, aggiungi l'host virtuale all'elemento
<HTTPConnection>nell'endpoint proxy. L'host virtuale viene aggiunto automaticamente a tutti i nuovi proxy API. Consulta Configurare un proxy API per utilizzare un host virtuale.
Modifica di un host virtuale
Per modificare un host virtuale:
-
Aggiorna l'host virtuale utilizzando l'API Aggiorna un host virtuale, dove
<ms-IP>è l'indirizzo IP o il nome di dominio del nodo del server di gestione. Devi specificare la definizione completa del virtual host nel corpo della richiesta, non solo gli elementi che vuoi modificare. In questo esempio, modifichi il numero di porta dell'host virtuale da 9008 a 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 -
Solo per le versioni 4.16.01 e 4.16.05 di Edge per Private Cloud: se modifichi
un host virtuale esistente e attivi o disattivi TLS senza modificare il numero di porta:
Arresta il router:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
Elimina tutti i file in
/opt/nginx/conf.d:rm -f /opt/nginx/conf.d/*
Avvia il router:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- Ripeti l'operazione per tutti i router.