Configurazione degli host virtuali per il cloud privato

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

In un'installazione on-premise, hai il controllo completo sugli host virtuali. Puoi creare host virtuali per qualsiasi organizzazione, in qualsiasi ambiente, con o senza TLS.

Questo documento descrive come creare un host virtuale semplice. ovvero una che non supporta TLS. Per altri esempi, tra cui la creazione di host virtuali che supportano TLS, consulta Configurare l'accesso TLS a un'API per il private cloud.

Scopri di più:

Informazioni sugli alias host

Quando crei l'host virtuale, devi specificare l'alias dell'host virtuale. In genere si tratta del nome DNS dell'host virtuale.

Il router di bordo 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 corrispondente all'alias dell'host di un host virtuale oppure specifica l'indirizzo IP del router e l'intestazione Host contenente l'alias dell'host.

Ad esempio, se hai creato un host virtuale con un alias host di myapis.apigee.net sulla porta 9001, una richiesta cURL a un'API attraverso questo host virtuale potrebbe utilizzare uno dei seguenti moduli:

  • 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, specifica l'indirizzo IP del router e passa l'alias dell'host nell'intestazione Host.

    curl http://routerIP:9001/proxy-base-path/resource-path

Opzioni se 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 crei un comando curl nel seguente modulo:

curl http://routerIP:9001/proxy-base-path/resource-path

Questa opzione è preferita perché funziona bene con l'interfaccia utente di Edge.

Se hai più router, aggiungi un alias host per ogni router, specificando l'indirizzo IP di ciascun router e la porta dell'host virtuale.

In alternativa, puoi impostare l'alias host su un valore, ad esempio temp.hostalias.com. Poi, devi passare l'intestazione Host a 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

Poi 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 degli host virtuali su Edge per Private Cloud 4.16.01 e versioni successive

Quando crei un host virtuale, specifica la porta del router utilizzata dall'host virtuale. Ad esempio, la porta 9001.

Per Apigee per il cloud privato release 4.16.01 e successive, per impostazione predefinita, il router funziona come l'utente "apigee", che non ha accesso alle porte con privilegi, in genere le porte 1024 e precedenti. Se vuoi creare un host virtuale che leghi 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.

Creare host virtuali

Questa sezione descrive come creare host virtuali per Apigee Edge for Private Cloud. Tieni presente che per creare un nuovo host virtuale, devi essere un amministratore dell'organizzazione.

Puoi creare host virtuali per Apigee Edge for Private Cloud utilizzando l'API o l'interfaccia utente di Edge. Questi sono descritti nelle sezioni seguenti.

Creare un host virtuale utilizzando un browser

Questa sezione descrive come creare un host virtuale utilizzando un browser (solo interfaccia utente di Edge).

Per creare un nuovo host virtuale nell'interfaccia utente di Edge:

  1. Accedi all'interfaccia utente di gestione di Edge.
  2. Seleziona Amministrazione > Host virtuali.
  3. Seleziona l'ambiente dall'elenco a discesa.

    Edge mostra un elenco di host virtuali per l'ambiente.

  4. 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.

  5. Definisci il nuovo host virtuale. Tieni presente che il campo URL base deve includere il protocollo (ovvero il valore del campo deve essere preceduto da "http://" o "https://").

    Inoltre, tieni presente che:

    • Non esiste un limite al numero di host virtuali che puoi creare
    • TLS è facoltativo e può essere nella versione 1.0, 1.1 o 1.2
    • La porta dell'host virtuale è configurabile
  6. Fai clic sul pulsante Crea per salvare il nuovo host virtuale.

Creare 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, il seguente oggetto XML 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 proprietà name per configurare un proxy API in modo che utilizzi l'host virtuale.

Puoi quindi accedere a un proxy API tramite questo host virtuale inviando una richiesta a:

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

Dove:

  • http o https: 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 sono definiti quando crei il proxy API.

In genere, le API non vengono pubblicate per i clienti con un indirizzo IP e un numero di porta. Devi invece definire 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 passata dal cliente nell'intestazione Host. Nell'esempio precedente, devi specificare un alias host di 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:

  1. 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
    
  2. Crea il record DNS per l'host virtuale corrispondente all'alias host.
  3. 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 l'utilizzo di un host virtuale.

Modifica di un host virtuale

Per modificare un host virtuale:

  1. 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 dell'host virtuale nel corpo della richiesta, non solo gli elementi da 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
  2. Solo per Edge per il cloud privato versioni 4.16.01 e 4.16.05, se modifichi un host virtuale esistente e attivi TLS o disabiliti TLS senza modificare il numero di porta:
    1. Arresta il router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Elimina tutti i file in /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Avvia il router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Ripeti l'operazione per tutti i router.