Informazioni sugli host virtuali

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

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

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, quest'ultimo è in grado di 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 mappato 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, mentre 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 di alias host definiti da tutti gli host virtuali per determinare quale host virtuale gestisce la richiesta.

Informazioni sulle definizioni di host virtuali

Gli host virtuali contengono le seguenti informazioni:

  • Il nome interno dell'host virtuale. che utilizzerai 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 mappato all'indirizzo IP sul router. L'intestazione Host delle richieste proxy API deve contenere l'alias host dell'host virtuale.
  • Una porta aperta sul router.
  • Indica se TLS (accesso HTTPS) è attivato o meno (accesso HTTP).

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

  • nome = myvhost
  • alias host = apis.acme.com
  • porta = 443
  • TLS è attivo

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:

  • La proprietà {proxy-base-path} viene definita 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 ciascun ambiente (predefinito e protetto) 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 seguente tabella:

Ambiente Nome host virtuale Alias host Porta TLS attivo
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". Di conseguenza, per accedere a un proxy API in quell'organizzazione, devi utilizzare 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 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 inoltre creare un host virtuale con l'alias host impostato su quel nome di dominio. Questo consente agli sviluppatori di accedere all'API attraverso 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 per il cloud privato

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

Per eseguire l'onboarding, esegui questo 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 a tua scelta che ricopri il ruolo di amministratore dell'organizzazione
  • Un'organizzazione denominata example
  • In un ambiente nell'organizzazione denominata 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 della porta dell'host virtuale nel formato IP:9001.

In un secondo momento potrai aggiungere un numero qualsiasi di organizzazioni, ambienti e host virtuali alla tua versione on-premise di Edge. Per ulteriori informazioni, 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 modulo seguente per aprire una porta:

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 formato:

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

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://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, devi specificare un alias host di myAPI.myCo.com quando crei l'host virtuale.

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 Edge: cloud o cloud privato.

Alias host e nomi DNS in Edge per il cloud

Quando crei un'organizzazione Edge per il cloud, Apigee crea automaticamente due ambienti (test e prod), due host virtuali in ogni ambiente (predefinito e protetto) e record DNS per ciascun 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, preferisci creare host virtuali che utilizzino il tuo nome di dominio, anziché utilizzare il dominio apigee.net predefinito. Per farlo, devi prima creare una voce DNS e un record CNAME.

La figura seguente mostra una configurazione tipica del modo in cui 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 per indirizzare api.acme.com ad 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, specificherai le seguenti informazioni in una definizione di host virtuale:

  • nome = myvhost
  • alias host = apis.acme.com
  • porta = 443
  • Attiva accesso TLS

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

Alias host e nomi DNS in Edge per il cloud privato

Come con Edge per il cloud, puoi creare host virtuali che utilizzano il tuo nome di dominio per l'alias host. Quindi, creerai 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, nel formato:

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

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

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

  • nome = myvhost
  • alias host = apis.acme.com
  • porta = 9001
  • Attiva accesso TLS

La figura seguente mostra una configurazione tipica del modo in cui 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 in modo che rimandino 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 di host virtuali per il cloud privato.

Alias host e caratteri jolly

Puoi includere il carattere jolly "*" nell'alias host. Il carattere jolly "*" può trovarsi 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 consente inoltre di utilizzare meno host virtuali per ambiente, in modo da rispettare i limiti di prodotto, poiché un host virtuale con un carattere jolly viene conteggiato come un unico 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à host virtuale

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 di proprietà che puoi impostare dipende dal fatto che utilizzi Edge per il cloud o Edge per il cloud privato. Se utilizzi Edge per il cloud privato, l'elenco delle proprietà disponibili dipenderà anche dalla versione di Edge in uso. Per una descrizione completa di tutte le proprietà di un host virtuale, consulta il riferimento sulle proprietà dell'host virtuale.

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