Informazioni sugli host virtuali

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

In Edge, un router gestisce tutto il traffico API in entrata. Ciò significa che tutte le richieste HTTP e HTTPS a un proxy API vengono prima gestite da un router di confine.

Un host virtuale ti consente di ospitare più nomi di dominio su un server. Per Edge, il server corrisponde a un router Edge. Se definisci più host virtuali su un router, il router può gestire le richieste API a più nomi di dominio.

Un host virtuale su Edge definisce il protocollo di accesso (HTTP o HTTPS), una porta del router aperta e un alias di host. L'alias host è in genere il nome di dominio DNS associato all'indirizzo IP del router.

Ad esempio, l'immagine seguente mostra un router con due definizioni di host virtuali:

Il primo host virtuale gestisce le richieste HTTPS sul dominio domainName1 e il secondo gestisce le richieste HTTP su domainName2.

In caso di richiesta a un proxy API, il router confronta l'intestazione Host della richiesta in arrivo con l'elenco di alias host definiti da tutti gli host virtuali per determinare quale tra questi gestisce la richiesta.

Informazioni sulle definizioni degli host virtuali

Gli host virtuali contengono le seguenti informazioni:

  • Il nome interno dell'host virtuale. Utilizza questo nome per fare riferimento all'host virtuale nei proxy API e durante la configurazione dell'host virtuale.
  • L'alias host dell'host virtuale. In genere l'alias host è il nome di dominio DNS che viene mappato all'indirizzo IP sul router. L'intestazione Host di una richiesta proxy dell'API deve contenere l'alias host dell'host virtuale.
  • Una porta aperta sul router.
  • Indica se TLS (accesso HTTPS) è abilitato o meno (accesso HTTP).

Ad esempio, quando crei un host virtuale, specifichi le seguenti informazioni:

  • name = myvhost
  • host alias = apis.acme.com
  • porta = 443
  • TLS abilitato

In base all'impostazione precedente per l'host virtuale, per una richiesta a un proxy API viene utilizzato il modulo:

https://apis.acme.com/{proxy-base-path}/{resource-path}

dove:

  • {proxy-base-path} viene definito quando crei un proxy API ed è univoco per ogni proxy API. Ad esempio:
    https://apis.acme.com/characters
  • {resource-path} il percorso di una risorsa accessibile tramite il proxy API. Ad esempio:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Informazioni sugli host virtuali in Edge per il Cloud

Ogni organizzazione Edge include automaticamente due ambienti (test e prod), due host virtuali in ogni ambiente (predefinito e sicuro) e record DNS per ogni alias host.

L'alias host di ogni host virtuale fornito da Apigee contiene il nome dell'organizzazione e dell'ambiente, come mostrato nella tabella seguente:

Ambiente Nome host virtuale Alias host Porta TLS abilitato
produzione predefinita {org-name}-prod.apigee.net 80 No
sicuro {org-name}-prod.apigee.net 443
test predefinita {org-name}-test.apigee.net 80 No
sicuro {org-name}-test.apigee.net 443

Ad esempio, il nome di dominio predefinito di un'organizzazione chiamata "myorg" nell'ambiente prod è "myorg-prod.apigee.net". Pertanto, per accedere a un proxy API in quell'organizzazione, devi utilizzare un URL nel seguente formato:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Piani a pagamento Apigee: un nome di dominio contenente "apigee.net" potrebbe non essere ciò che vuoi esporre ai tuoi clienti. Puoi utilizzare una voce DNS e un record CNAME per mappare un nome di dominio alla tua organizzazione su Edge. Devi anche creare un host virtuale con l'alias host impostato su quel nome di dominio. In questo modo, gli sviluppatori possono accedere alla tua API tramite un dominio specifico per la tua azienda.

Ecco un esempio di dominio personalizzato in Edge:

https://apis.acme.com/{proxy-base-path}/{resource-path}

Informazioni sugli host virtuali su Edge for Private Cloud

Quando installi Apigee Edge per il cloud privato, non vengono creati host virtuali, organizzazioni o ambienti predefiniti. Dopo aver completato la procedura di installazione di Edge, solitamente la prima azione consiste nel creare un'organizzazione, un ambiente e un host virtuale tramite la procedura di "onboarding".

Per eseguire l'onboarding, esegui il seguente comando sul nodo Edge Management Server:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

dove configFile contiene le informazioni necessarie per creare un utente, un'organizzazione, un ambiente e un host virtuale.

Ad esempio, crei:

  • Un utente di tua scelta che fungerà da amministratore dell'organizzazione
  • Un'organizzazione denominata example
  • Un ambiente nell'organizzazione denominato prod
  • Un host virtuale nell'ambiente denominato default che consente l'accesso HTTP sulla porta 9001
  • Un alias host del nome DNS utilizzato per accedere al router oppure l'indirizzo IP del router e la porta dell'host virtuale nel formato IP:9001.

In un secondo momento, puoi aggiungere un numero qualsiasi di organizzazioni, ambienti e host virtuali alla versione on-premise di Edge. Per ulteriori informazioni, vedi:

Gli host virtuali vengono aperti sull'Edge Router. Pertanto, devi assicurarti che la porta specificata per l'host virtuale sia aperta sul router. Per aprire una porta, puoi utilizzare un comando nel seguente formato:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

Dopo aver eseguito il comando, puoi accedere alle API utilizzando un URL nel seguente formato:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

In genere, non pubblichi le API 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://myAPI.myCo.com/{proxy-base-path}/{resource-path}

Quando definisci la voce DNS, devi anche creare un host virtuale con un alias host che corrisponde al nome di dominio della voce DNS. Nell'esempio precedente, devi specificare un alias host di myAPI.myCo.com quando crei l'host virtuale.

Informazioni sugli alias host e sui nomi DNS

Una proprietà impostata per un host virtuale è l'alias host. L'alias host è solitamente il nome DNS dell'host virtuale. Il modo in cui imposti l'alias host dipende dal tipo di installazione di Edge: Cloud o private cloud.

Alias host e nomi DNS in Edge per il Cloud

In Edge for the Cloud, quando crei per la prima volta un'organizzazione Edge, Apigee crea automaticamente due ambienti (test e prod), due host virtuali in ogni ambiente (predefinito e sicuro) e i record DNS per ogni host virtuale.

L'alias host degli host virtuali contiene il nome dell'organizzazione e dell'ambiente. Pertanto, una richiesta tramite un host virtuale ha il seguente formato:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

In genere, è consigliabile creare host virtuali che utilizzino il tuo nome di dominio anziché il dominio apigee.net predefinito. Per farlo, devi prima creare la tua voce DNS e il tuo record CNAME.

La figura seguente mostra una configurazione tipica di come Edge elabora una richiesta API:

In questo esempio:

  • api.acme.com è il nome di dominio che preferisci.
  • Devi definire una voce DNS e un record CNAME che punti ad api.acme.com ad acme-prod.apigee.net.
  • La richiesta contiene l'intestazione Host utilizzata dal router per determinare l'host virtuale che gestisce la richiesta.

In questo esempio, specifichi le seguenti informazioni in una definizione di host virtuale:

  • name = myvhost
  • host alias = apis.acme.com
  • porta = 443
  • Abilita accesso TLS

Per saperne di più, consulta Configurare gli host virtuali per il cloud.

Alias host e nomi DNS in Edge for Private Cloud

Come con Edge per il cloud, puoi creare host virtuali che utilizzano il tuo nome di dominio per l'alias host. Poi crei la tua voce DNS e il tuo record CNAME per accedere a questi host virtuali.

Una delle differenze tra cloud e cloud privato è che in Cloud Apigee crea automaticamente i nomi DNS per le tue organizzazioni, nella forma seguente:

  • name=default: http://{org-name}-{env-name}.apigee.net (porta router 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Porta router 443)

In Edge per il cloud privato, devi creare le voci DNS per l'indirizzo IP e la porta del router.

Ad esempio, specifichi queste informazioni in una definizione di host virtuale:

  • name = myvhost
  • host alias = apis.acme.com
  • porta = 9001
  • Abilita accesso TLS

La figura seguente mostra una configurazione tipica di come Edge elabora una richiesta API:

In questo esempio:

  • api.acme.com è il nome di dominio che preferisci.
  • Definisci una voce DNS e un record CNAME per indirizzare api.acme.com all'indirizzo IP e alla porta del router.
  • La richiesta contiene l'intestazione Host utilizzata dal router per determinare l'host virtuale che gestisce la richiesta.

Per saperne di più, consulta Configurare gli host virtuali per il private cloud.

Alias host e caratteri jolly

Puoi includere il carattere jolly "*" nell'alias host. Il carattere jolly "*" può essere solo all'inizio (prima del primo ".") dell'alias host e non può essere combinato con altri caratteri.

Di seguito è riportato un esempio di alias host valido che utilizza un carattere jolly:

*.example.com

I seguenti esempi non sono validi:

  www.*.example.com
  w*.example.com

L'utilizzo di un carattere jolly in un alias host virtuale consente ai proxy API di gestire le chiamate indirizzate a più sottodomini, ad esempio alpha.example.com, beta.example.com o live.example.com. L'utilizzo di un alias jolly ti consente inoltre di utilizzare meno host virtuali per ambiente per rispettare i limiti del prodotto, poiché un host virtuale con un carattere jolly viene conteggiato come un solo host virtuale.

Il certificato TLS per l'host virtuale deve avere un carattere jolly corrispondente nel nome della rete connessa in questione. Ad esempio, *.example.com.

Informazioni sulle proprietà host virtuali

In Edge, un host virtuale è rappresentato da un oggetto XML. Ad esempio, il seguente oggetto XML definisce un host virtuale:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

L'elenco delle proprietà che puoi impostare dipende dal fatto che tu stia utilizzando Edge per il cloud o Edge per il cloud privato. Se utilizzi Edge per il cloud privato, l'elenco delle proprietà disponibili dipende anche dalla versione di Edge. Per una descrizione completa di tutte le proprietà di un host virtuale, consulta Informazioni di riferimento sulle proprietà dell'host virtuale.

Per ulteriori informazioni sulla creazione di host virtuali per la tua versione specifica di Edge, consulta: