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 e in qualsiasi ambiente, utilizzando o meno TLS.

Questo documento descrive come creare un host virtuale semplice. Vale a dire che non supporta TLS. Per altri esempi, inclusi esempi sulla creazione di host virtuali che supportano TLS, consulta Configurazione dell'accesso TLS a un'API per il cloud privato.

Scopri di più:

Informazioni sugli alias host

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

Il router perimetrale confronta l'intestazione Host della richiesta in entrata con l'elenco degli alias host disponibili nell'ambito della determinazione del 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 di myapis.apigee.net sulla porta 9001, una richiesta cURL a un'API tramite 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 disponi di 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.

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

Opzioni disponibili quando non è disponibile una voce DNS per l'host virtuale

Se non hai una voce DNS, un'opzione è quella di impostare l'alias host sull'indirizzo IP del router e della porta dell'host virtuale, ad esempio routerIP:port. Ad esempio:

192.168.1.31:9001

Quando esegui un comando curl nel modulo seguente:

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

Questa opzione è preferibile perché funziona bene con l'UI Edge.

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

In alternativa, puoi impostare un valore per l'alias host, ad esempio temp.hostalias.com. Successivamente, 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

Quindi 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 su Edge per Private Cloud 4.16.01 e versioni successive

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

Per Apigee per il cloud privato versioni 4.16.01 e successive, per impostazione predefinita, il router viene eseguito come utente "apigee", che non ha accesso alle porte con privilegi, in genere le porte 1024 e precedenti. 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 quelle porte. Per ulteriori informazioni, consulta Configurazione di un host virtuale.

Crea host virtuali

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

Puoi creare host virtuali per Apigee Edge per il cloud privato utilizzando l'API o l'UI 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 UI Edge).

Per creare un nuovo host virtuale nella UI di Edge:

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

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

  4. Per creare un nuovo host virtuale, seleziona + Host virtuale.

    Edge visualizza 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 di base deve includere il protocollo (ad esempio, fai precedere il valore del campo da "http://" o "https://").

    Inoltre, tieni presente che:

    • Non esiste alcun 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
  6. 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, 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>

Nota che l'host virtuale contiene una proprietà name. Utilizza il valore della proprietà name per configurare un proxy API che utilizzi l'host virtuale.

Potrai 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-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 vengono definiti quando crei il proxy API.

In genere, le API non vengono pubblicate per i clienti con indirizzo IP e numero di porta. ma devi 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 trasmessa dal client nell'intestazione Host. Nell'esempio precedente, dovresti 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 utilizzi il protocollo HTTP, esegui queste operazioni:

  1. Per creare l'host virtuale, utilizza 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 che corrisponde all'alias host.
  3. Se disponi di 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 la sezione Configurazione di un proxy API per l'utilizzo di un host virtuale.

Modifica di un host virtuale

Per modificare un host virtuale, esegui queste operazioni:

  1. Aggiorna l'host virtuale utilizzando l'API Update a Virtual Host, 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 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
  2. Solo per Edge per Cloud privato versioni 4.16.01 e 4.16.05, se modifichi un host virtuale esistente e abiliti 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.