À propos des hôtes virtuels

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Dans Edge, un routeur gère tout le trafic entrant de l'API. Autrement dit, tous les protocoles HTTP et HTTPS les requêtes 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, le routeur peut gérer les requêtes API vers 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 hôte un alias. 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 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 au liste des alias d'hôtes définis par tous les hôtes virtuels pour déterminer quel l'hôte gère la requête.

À propos des définitions d'hôte virtuel

Les hôtes virtuels contiennent les informations suivantes:

  • Nom interne de l'hôte virtuel. Vous utilisez ce nom pour faire référence à l'instance dans vos mandataires d'API et lors de la configuration de l'hôte virtuel.
  • L'alias d'hôte de l'hôte virtuel. En général, l'alias d'hôte est le DNS nom de domaine qui correspond à l'adresse IP sur le routeur. L'en-tête Host d'un Les requêtes de proxy d'API doivent 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 de l'hôte = apis.acme.com
  • port = 443
  • TLS activé
.

Sur la base du paramètre ci-dessus pour l'hôte virtuel, une requête adressée à un proxy d'API utilise au 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 En périphérie pour le cloud

Chaque organisation Edge inclut automatiquement deux environnements (test et prod), deux hôtes virtuels dans chaque environnement (par défaut et sécurisé), et les 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 environment, comme indiqué dans le tableau suivant:

Environment Nom d'hôte virtuel Alias d'hôte Port TLS activé
production 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 utilisez 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:nom de domaine contenant "apigee.net" n'est peut-être pas celle que vous voulez exposer 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 pour Private Cloud

Lorsque vous installez Apigee Edge pour le cloud privé, il n'existe aucune organisation par défaut, ou des hôtes virtuels créés pour vous. Une fois le processus d'installation Edge terminé, la première action consiste généralement à créer une organisation, un environnement et un hôte virtuel l’« intégration » processus.

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 à la création d'une l'utilisateur, l'organisation, l'environnement et l'hôte virtuel.

Par exemple, vous pouvez créer les éléments suivants:

  • un utilisateur de votre choix qui occupe le rôle d'administrateur de l'entreprise ;
  • 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
  • Un alias d'hôte du nom DNS utilisé pour accéder au routeur, ou l'adresse IP du routeur et 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 de la version sur site d'Edge. Pour en savoir plus, consultez les pages suivantes :

Les hôtes virtuels sont ouverts sur le routeur Edge. Vous devez donc vous assurer que le port que vous spécifiez pour l'hôte virtuel est ouvert sur le routeur. Vous pouvez utiliser une commande dans le format 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 les clients disposant d'une adresse IP numéro de port. À la place, 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 configuration de l'alias d'hôte dépend du type de Installation en périphérie: cloud ou cloud privé

Les alias d'hôte et Noms DNS dans Edge for the Cloud

Dans Edge pour le cloud, lorsque vous créez pour la première fois une organisation Edge, Apigee crée deux environnements (test et prod), deux hôtes virtuels dans chaque environnement (par défaut et sécurisé), ainsi que des enregistrements DNS pour chacun 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}

Généralement, il est préférable de créer des hôtes virtuels qui utilisent votre nom de domaine au lieu d'utiliser le domaine apigee.net par défaut. À faire Vous devez donc d'abord créer votre propre entrée DNS et votre propre enregistrement CNAME.

La figure suivante montre une configuration type de la façon dont Edge traite une requête API:

Dans cet exemple :

  • api.acme.com est le nom de domaine que vous souhaitez utiliser.
  • Vous définissez une entrée DNS et un enregistrement CNAME qui pointent vers api.acme.com. acme-prod.apigee.net.
  • La requête contient l'en-tête Host utilisé par le routeur pour déterminer l'hôte virtuel qui gère la requête.

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

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

Pour en savoir plus, consultez la section Configurer des hôtes virtuels pour le cloud.

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

Comme avec Edge pour le cloud, vous créez des hôtes virtuels qui utilisent votre propre nom de domaine pour l'hôte un alias. Vous créez ensuite vos propres entrée DNS et enregistrement CNAME pour accéder à ces hôtes virtuels.

L'une des différences entre le cloud et le cloud privé est que, dans des noms DNS créés automatiquement pour vos organisations, au format suivant:

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

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

Par exemple, vous pouvez spécifier les informations suivantes dans la définition d'un hôte virtuel:

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

La figure suivante montre une configuration type de la façon dont Edge traite une requête API:

Dans cet exemple :

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

Pour en savoir plus, consultez la section Configurer des hôtes virtuels pour le cloud privé.

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

Vous pouvez inclure le signe "*" dans l'alias d'hôte. Le « * » le caractère générique peut ne doit se trouver qu'au début (avant le premier ".") de l'alias d'hôte, et ne peut pas être mélangé à 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 Les proxys d'API gèrent 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 d'utiliser moins de ressources d'hôtes par environnement pour rester dans le produit limites, car un hôte virtuel comportant un caractère générique compte comme 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 varie selon que vous utilisez Edge for the Cloud ou non ou Edge pour le cloud privé. Si vous utilisez Edge pour le cloud privé, la liste des 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, voir Documentation de référence sur la propriété d'hôte virtuel

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