Edge for Private Cloud v. 4.17.05
Un host virtuale su Edge definisce i domini e le porte del router Edge su cui è esposto un proxy API e, per estensione, l'URL utilizzato dalle app per accedere a un proxy API. Un host virtuale definisce anche se l'accesso al proxy API avviene tramite il protocollo HTTP o tramite il protocollo HTTPS criptato.
Nell'ambito del processo di onboarding di Edge, devi creare un'organizzazione, un ambiente e un host virtuale. Edge fornisce il comando setup-org per semplificare questo processo per i nuovi utenti.
Quando crei l'host virtuale, devi specificare le seguenti informazioni:
- Il nome dell'host virtuale che utilizzi per fare riferimento all'host nei proxy API.
- La porta sul router per l'host virtuale. In genere, queste porte iniziano da 9001 e aumentano di uno per ogni nuovo host virtuale.
- L'alias host dell'host virtuale. In genere il nome DNS dell'host virtuale.
Ad esempio, in un file di configurazione passato al comando setup-org, puoi specificare queste informazioni come:
# 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
Il router perimetrale confronta l'intestazione Host della richiesta in arrivo 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 o 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, specifichi l'indirizzo IP del router e passi l'alias host nell'intestazione Host.
Nota: il comando cURL, la maggior parte dei browser e molte altre utilità aggiungono automaticamente l'intestazione Host con il dominio come parte della richiesta, quindi puoi effettivamente utilizzare un comando cURL nel formato:
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:
VHOST_ALIAS=192.168.1.31:9001
Poi, esegui un comando curl nel formato seguente:
curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} Questa opzione è preferibile perché funziona bene con la UI di 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:
# 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"
In alternativa, puoi impostare l'alias host su un valore, ad esempio temp.hostalias.com. Poi, devi passare l'intestazione Host in 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
Puoi quindi effettuare una richiesta come se avessi una voce DNS:
curl -v http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}Utilizzo di una porta protetta in un host virtuale
Se vuoi creare un host virtuale che associa il router a una porta protetta, ad esempio numeri di porta inferiori a 1000, devi configurare il router in modo che venga eseguito come utente con accesso a queste porte. Per impostazione predefinita, il router viene eseguito come utente "apigee", che non ha accesso alle porte con privilegi.
Per eseguire il router come un altro utente:
- Come utente root, crea il file /opt/apigee/etc/edge-router.d/RUN_USER.sh.
- Aggiungi la seguente voce al file:
RUN_USER=root
Se non vuoi eseguire il router come root, specifica un utente con accesso alla porta. - Salva il file.
- Se hai specificato un utente diverso da root, cambia il proprietario del file in quell'utente:
> chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh - Riavvia il router:
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart