À propos des hôtes virtuels

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Dans Edge, un routeur gère tout le trafic d'API entrant. Cela signifie que toutes les requêtes HTTP et HTTPS adressées à un proxy d'API sont d'abord traitées par un routeur Edge.

Un hôte virtuel vous permet d'héberger plusieurs noms de domaine sur un serveur. Pour Edge, le serveur correspond à un routeur Edge. En définissant plusieurs hôtes virtuels sur un routeur, celui-ci peut gérer les requêtes API adressées à plusieurs noms de domaine.

Un hôte virtuel sur Edge définit le protocole d'accès (HTTP ou HTTPS), un port de routeur ouvert et un alias d'hôte. L'alias d'hôte est généralement le nom de domaine DNS associé à l'adresse IP du routeur.

Par exemple, l'image suivante montre un routeur avec deux définitions d'hôte virtuel:

Le premier hôte virtuel gère les requêtes HTTPS sur le domaine domainName1 et le second gère les requêtes HTTP sur domainName2.

Lors d'une requête adressée à un proxy d'API, le routeur compare l'en-tête Host de la requête entrante à la liste des alias d'hôte définis par tous les hôtes virtuels pour déterminer quel hôte virtuel gère la requête.

À propos des définitions d'hôtes virtuels

Les hôtes virtuels contiennent les informations suivantes:

  • Nom interne de l'hôte virtuel. Vous utilisez ce nom pour référencer l'hôte virtuel dans vos proxys d'API et lors de la configuration de l'hôte virtuel.
  • Alias d'hôte de l'hôte virtuel. Généralement, l'alias d'hôte est le nom de domaine DNS mappé à l'adresse IP du routeur. L'en-tête Host des requêtes de proxy d'API doit contenir l'alias d'hôte de l'hôte virtuel.
  • Un port ouvert sur le routeur.
  • Indique si le protocole TLS (accès HTTPS) est activé ou non (accès HTTP).

Par exemple, vous spécifiez les informations suivantes lorsque vous créez un hôte virtuel:

  • name = myvhost
  • alias d'hôte = apis.acme.com
  • Port = 443
  • TLS est activé

En fonction du paramètre ci-dessus pour l'hôte virtuel, une requête adressée à un proxy d'API utilise le format suivant:

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

où :

  • {proxy-base-path} est défini lorsque vous créez un proxy d'API et est unique pour chaque proxy d'API. Exemple :
    https://apis.acme.com/characters
  • {resource-path} est le chemin d'accès à une ressource accessible via le proxy d'API. Exemple :
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

À propos des hôtes virtuels dans Edge for the Cloud

Chaque organisation de périphérie comprend automatiquement deux environnements (test et prod), deux hôtes virtuels dans chaque environnement (par défaut et sécurisé) et des enregistrements DNS pour chaque alias d'hôte.

L'alias d'hôte de chaque hôte virtuel fourni par Apigee contient le nom de l'organisation et de l'environnement, comme indiqué dans le tableau suivant:

Environment Nom d'hôte virtuel Alias d'hôte Port TLS activé
prod par défaut {org-name}-prod.apigee.net 80 Non
sécurisé {org-name}-prod.apigee.net 443 Oui
test par défaut {org-name}-test.apigee.net 80 Non
sécurisé {org-name}-test.apigee.net 443 Oui

Par exemple, le nom de domaine par défaut d'une organisation appelée "myorg" dans l'environnement prod est "myorg-prod.apigee.net". Par conséquent, pour accéder à un proxy d'API dans cette organisation, vous devez utiliser une URL au format suivant:

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

Forfaits payants Apigee:un nom de domaine contenant "apigee.net" peut ne pas être celui que vous souhaitez proposer à vos clients. Vous pouvez utiliser une entrée DNS et un enregistrement CNAME pour mapper un nom de domaine à votre organisation sur Edge. Vous devez également créer un hôte virtuel avec l'alias d'hôte défini sur ce nom de domaine. Cela permet aux développeurs d'accéder à votre API via un domaine spécifique à votre entreprise.

Voici un exemple de domaine personnalisé dans Edge:

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

À propos des hôtes virtuels sur Edge for Private Cloud

Lorsque vous installez Apigee Edge pour le cloud privé, aucun organisation, environnement ou hôtes virtuel par défaut n'est créé pour vous. Une fois le processus d'installation de Edge terminé, votre première action consiste généralement à créer une organisation, un environnement et un hôte virtuel via le processus d'intégration.

Pour effectuer l'intégration, exécutez la commande suivante sur le nœud du serveur de gestion Edge:

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

configFile contient les informations nécessaires pour créer un utilisateur, une organisation, un environnement et un hôte virtuel.

Par exemple, vous créez:

  • un utilisateur de votre choix agissant en tant qu'administrateur de l'organisation
  • Une organisation nommée example
  • Un environnement de l'organisation nommé prod
  • Un hôte virtuel dans l'environnement nommé default qui autorise l'accès HTTP sur le port 9001
  • Alias d'hôte du nom DNS utilisé pour accéder au routeur, ou adresse IP du routeur et du port de l'hôte virtuel au format IP:9001.

Vous pouvez ensuite ajouter un nombre illimité d'organisations, d'environnements et d'hôtes virtuels à votre version sur site d'Edge. Pour en savoir plus, consultez :

Les hôtes virtuels sont ouverts sur le routeur périphérique. Par conséquent, vous devez vous assurer que le port que vous spécifiez pour l'hôte virtuel est ouvert sur le routeur. Vous pouvez utiliser une commande du formulaire ci-dessous pour ouvrir un port:

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

Après avoir exécuté cette commande, vous pouvez accéder à vos API à l'aide d'une URL au format suivant:

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

En règle générale, vous ne publiez pas vos API pour des clients avec une adresse IP et un numéro de port. Au lieu de cela, vous définissez une entrée DNS pour le routeur et le port. Exemple :

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

Lorsque vous définissez l'entrée DNS, vous devez également créer un hôte virtuel avec un alias d'hôte qui correspond au nom de domaine de l'entrée DNS. Dans l'exemple ci-dessus, vous devez spécifier un alias d'hôte de myAPI.myCo.com lorsque vous créez l'hôte virtuel.

À propos des alias d'hôte et des noms DNS

L'une des propriétés que vous définissez pour un hôte virtuel est l'alias d'hôte. L'alias d'hôte est généralement le nom DNS de l'hôte virtuel. La manière dont vous définissez l'alias d'hôte dépend de votre type d'installation Edge: cloud ou cloud privé.

Alias d'hôte et noms DNS dans Edge pour le cloud

Dans Edge for the Cloud, lorsque vous créez une organisation Edge pour la première fois, Apigee crée automatiquement deux environnements (test et prod), deux hôtes virtuels dans chaque environnement (par défaut et sécurisé) et des enregistrements DNS pour chaque hôte virtuel.

L'alias d'hôte des hôtes virtuels contient le nom de l'organisation et de l'environnement. Par conséquent, une requête via un hôte virtuel se présente comme suit:

  • 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}

En règle générale, vous souhaitez créer des hôtes virtuels qui utilisent votre nom de domaine au lieu du domaine apigee.net par défaut. Pour ce faire, vous devez d'abord créer vos propres entrées DNS et enregistrements CNAME.

La figure suivante montre une configuration typique de la manière dont Edge traite une requête API:

Dans cet exemple :

  • api.acme.com est le nom de domaine souhaité.
  • Vous définissez une entrée DNS et un enregistrement CNAME pour pointer api.acme.com vers acme-prod.apigee.net.
  • La requête contient l'en-tête Host que le routeur utilise pour déterminer l'hôte virtuel qui traitera la requête.

Dans cet exemple, vous spécifiez les informations suivantes dans une définition d'hôte virtuel:

  • name = myvhost
  • alias d'hôte = apis.acme.com
  • Port = 443
  • Activer l'accès TLS

Pour plus d'informations, consultez la section Configurer des hôtes virtuels pour le cloud.

Alias d'hôte et noms DNS dans Edge for Private Cloud

Comme avec Edge for the Cloud, vous créez des hôtes virtuels qui utilisent votre propre nom de domaine pour l'alias d'hôte. Vous créez ensuite vos propres entrées DNS et enregistrements CNAME pour accéder à ces hôtes virtuels.

L'une des différences entre le cloud et le cloud privé est que dans Cloud Apigee, Apigee a créé automatiquement des noms DNS pour vos organisations, sous la forme:

  • name=default: http://{org-name}-{env-name}.apigee.net (port du routeur 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (port de routeur 443)

Dans Edge pour le cloud privé, vous devez créer les entrées DNS pour l'adresse IP et le port de votre routeur.

Par exemple, vous spécifiez ces informations dans une définition d'hôte virtuel:

  • name = myvhost
  • alias d'hôte = apis.acme.com
  • Port = 9001
  • Activer l'accès TLS

La figure suivante montre une configuration typique de la manière dont Edge traite une requête API:

Dans cet exemple :

  • api.acme.com est le nom de domaine souhaité.
  • Vous définissez une entrée DNS et un enregistrement CNAME pour pointer api.acme.com vers l'adresse IP et le port du routeur.
  • La requête contient l'en-tête Host que le routeur utilise pour déterminer l'hôte virtuel qui traitera la requête.

Voir Configurer des hôtes virtuels pour le cloud privé pour plus d'informations.

Alias d'hôte et caractères génériques

Vous pouvez inclure le caractère générique "*" dans l'alias d'hôte. Le caractère générique "*" ne peut se trouver qu'au début (avant le premier point) de l'alias d'hôte et ne peut pas être mélangé avec d'autres caractères.

Voici un exemple d'alias d'hôte valide utilisant un caractère générique:

*.example.com

Les exemples suivants ne sont pas valides:

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

L'utilisation d'un caractère générique dans un alias d'hôte virtuel permet aux proxys d'API de gérer les appels adressés à plusieurs sous-domaines tels que alpha.example.com, beta.example.com ou live.example.com. L'utilisation d'un alias générique vous permet également de réduire le nombre d'hôtes virtuels par environnement afin de respecter les limites du produit, car un hôte virtuel avec un caractère générique ne compte que pour un seul hôte virtuel.

Le nom CN du certificat TLS de l'hôte virtuel doit comporter un caractère générique correspondant. Par exemple, *.example.com.

À propos des propriétés d'hôte virtuel

Dans Edge, un hôte virtuel est représenté par un objet XML. Par exemple, l'objet XML suivant définit un hôte virtuel:

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

La liste des propriétés que vous pouvez définir dépend de votre utilisation d'Edge pour le cloud ou de Edge pour le cloud privé. Si vous utilisez Edge pour le cloud privé, la liste des propriétés disponibles dépend également de votre version d'Edge. Pour obtenir une description complète de toutes les propriétés d'un hôte virtuel, consultez la documentation de référence sur les propriétés d'hôte virtuel.

Pour plus d'informations sur la création d'hôtes virtuels pour votre version spécifique d'Edge, consultez les sections suivantes: