Informazioni sugli host virtuali

Stai visualizzando la documentazione di Apigee Edge.
Consulta la 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 gestite prima da un router Edge.

Un host virtuale ti consente di ospitare più nomi di dominio su un server. Per Edge, il server corrisponde a un router Edge. Definendo 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 host. L'alias host è in genere il nome di dominio DNS che esegue il mapping all'indirizzo IP del router.

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

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

In una richiesta a un proxy API, il router confronta l'intestazione Host della richiesta in entrata con l' elenco degli alias host definiti da tutti gli host virtuali per determinare quale host virtuale 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 quando lo configuri.
  • L'alias host dell'host virtuale. In genere, l'alias host è il nome di dominio DNS che esegue il mapping all'indirizzo IP del router. L'intestazione Host delle richieste del proxy API deve contenere l'alias host dell'host virtuale.
  • Una porta aperta sul router.
  • 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
  • port = 443
  • TLS is enabled

In base all'impostazione precedente per l'host virtuale, una richiesta a un proxy API utilizza 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 (default e secure), 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 enabled
produzione predefinito {org-name}-prod.apigee.net 80 No
sicuro {org-name}-prod.apigee.net 443
test predefinito {org-name}-test.apigee.net 80 No
sicuro {org-name}-test.apigee.net 443

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

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

Piani a pagamento di Apigee: un nome di dominio contenente "apigee.net" potrebbe non essere quello 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 della 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 per il cloud privato

Quando installi Apigee Edge per il cloud privato, non vengono creati organizzazioni, ambienti o host virtuali predefiniti. Al termine della procedura di installazione di Edge, la prima azione consiste in genere 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 del server di gestione Edge:

/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 a tua scelta che funga 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 o l'indirizzo IP del router e porta dell'host virtuale nel formato IP:9001.

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

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

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

Dopo aver eseguito questo comando, puoi accedere alle tue API utilizzando un URL nel formato:

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

In genere, non pubblichi le tue API per i clienti con un indirizzo IP e numero di porta. Definisci invece 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 corrisponda al nome di dominio della voce DNS. Dall'esempio precedente, quando crei l'host virtuale, devi specificare un alias host di myAPI.myCo.com.

Informazioni sugli alias host e sui nomi DNS

Una proprietà che imposti per un host virtuale è l'alias host. L'alias host è in genere il nome DNS dell'host virtuale. La modalità di impostazione dell'alias host dipende dal tipo di installazione di Edge: cloud o cloud privato.

Alias host e nomi DNS in Edge per il cloud

In Edge per il cloud, quando crei per la prima volta un'organizzazione Edge, Apigee crea automaticamente due ambienti (test e prod), due host virtuali in ogni ambiente (default e secure) e 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 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, vuoi creare host virtuali che utilizzino il tuo nome di dominio anziché utilizzare 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 vuoi utilizzare.
  • Definisci una voce DNS e un record CNAME per indirizzare api.acme.com a acme-prod.apigee.net.
  • La richiesta contiene l'intestazione Host che il router utilizza 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
  • port = 443
  • Enable TLS access

Per saperne di più, consulta Configurazione degli host virtuali per il cloud.

Alias host e nomi DNS in Edge per il cloud privato

Come per Edge per il cloud, crei 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 il cloud e il cloud privato è che nel cloud Apigee ha creato automaticamente i nomi DNS per le tue organizzazioni, nel formato:

  • name=default: http://{org-name}-{env-name}.apigee.net (Router port 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Router port 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
  • port = 9001
  • Enable TLS access

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 vuoi utilizzare.
  • 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 che il router utilizza per determinare l'host virtuale che gestisce la richiesta.

Per saperne di più, consulta Configurazione degli host virtuali per il cloud privato.

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 con caratteri jolly ti aiuta anche a utilizzare meno host virtuali per ambiente per rimanere entro i limiti del prodotto, poiché un host virtuale con un carattere jolly conta come un solo host virtuale.

Il certificato TLS per l'host virtuale deve avere un carattere jolly corrispondente nel nome CN del certificato. Ad esempio, *.example.com.

Informazioni sulle proprietà degli 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 tua versione di Edge. Per una descrizione completa di tutte le proprietà di un host virtuale, consulta Riferimento alle proprietà degli host virtuali.

Per saperne di più sulla creazione di host virtuali per la tua versione specifica di Edge, vedi: