Configurer des hôtes virtuels pour le cloud privé

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

Dans une installation sur site, vous contrôlez entièrement les hôtes virtuels. Vous pouvez créer des hôtes virtuels pour n'importe quelle organisation, dans n'importe quel environnement, à l'aide ou non du protocole TLS.

Ce document explique comment créer un hôte virtuel simple. Autrement dit, elle n'est pas compatible avec le protocole TLS. Pour plus d'exemples, y compris sur la création d'hôtes virtuels compatibles avec TLS, consultez la section Configurer l'accès TLS à une API pour le cloud privé.

En savoir plus :

À propos des alias d'hôte

Lorsque vous créez l'hôte virtuel, vous devez spécifier son alias. Il s'agit généralement du nom DNS de l'hôte virtuel.

Le routeur Edge compare l'en-tête Host de la requête entrante à la liste des alias d'hôte disponibles afin de déterminer le proxy d'API qui gère la requête. Lorsque vous effectuez une requête via un hôte virtuel, vous pouvez soit spécifier un nom de domaine correspondant à l'alias d'hôte d'un hôte virtuel, soit spécifier l'adresse IP du routeur et l'en-tête Host contenant l'alias d'hôte.

Par exemple, si vous avez créé un hôte virtuel avec un alias d'hôte de myapis.apigee.net sur le port 9001, une requête cURL adressée à une API par l'intermédiaire de cet hôte virtuel peut utiliser l'une des formes suivantes:

  • Si vous avez une entrée DNS pour myapis.apigee.net:

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Si vous n'avez pas d'entrée DNS pour myapis.apigee.net:

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    Dans ce formulaire, vous devez spécifier l'adresse IP du routeur et transmettre l'alias d'hôte dans l'en-tête Host.

    curl http://routerIP:9001/proxy-base-path/resource-path

Options disponibles en l'absence d'entrée DNS pour l'hôte virtuel

En l'absence d'entrée DNS, une option consiste à définir l'alias d'hôte sur l'adresse IP du routeur et le port de l'hôte virtuel, au format routerIP:port. Par exemple:

192.168.1.31:9001

Lorsque vous exécutez une commande curl au format ci-dessous:

curl http://routerIP:9001/proxy-base-path/resource-path

Cette option est à privilégier car elle fonctionne bien avec l'interface utilisateur Edge.

Si vous disposez de plusieurs routeurs, ajoutez un alias d'hôte pour chacun d'eux, en spécifiant l'adresse IP de chaque routeur et le port de l'hôte virtuel.

Vous pouvez également définir l'alias d'hôte sur une valeur, telle que temp.hostalias.com, puis transmettre l'en-tête Host à chaque requête:

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

Vous pouvez également ajouter l'alias d'hôte à votre fichier /etc/hosts. Par exemple, ajoutez cette ligne à /etc/hosts:

192.168.1.31 temp.hostalias.com

Vous pouvez ensuite effectuer une requête comme si vous aviez une entrée DNS:

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

À propos des ports d'hôte virtuel sur Edge pour Private Cloud 4.16.01 et versions ultérieures

Lors de la création d'un hôte virtuel, vous spécifiez le port de routeur utilisé par l'hôte virtuel. (par exemple, le port 9001).

Pour les versions 4.16.01 et ultérieures d'Apigee for Private Cloud, le routeur s'exécute par défaut en tant qu'utilisateur "apigee" qui n'a pas accès aux ports privilégiés, généralement les ports 1024 et inférieurs. Si vous souhaitez créer un hôte virtuel qui lie le routeur à un port protégé, vous devez configurer le routeur pour qu'il s'exécute en tant qu'utilisateur ayant accès à ces ports. Pour en savoir plus, consultez la section Configurer un hôte virtuel.

Créer des hôtes virtuels

Cette section explique comment créer des hôtes virtuels pour Apigee Edge pour le cloud privé. Notez que pour créer un hôte virtuel, vous devez être administrateur de l'organisation.

Vous pouvez créer des hôtes virtuels pour Apigee Edge for Private Cloud à l'aide de l'API ou de l'interface utilisateur Edge. Ceux-ci sont décrits dans les sections suivantes.

Créer un hôte virtuel à l'aide d'un navigateur

Cette section explique comment créer un hôte virtuel à l'aide d'un navigateur (interface utilisateur Edge uniquement).

Pour créer un hôte virtuel dans l'interface utilisateur Edge:

  1. Connectez-vous à l'interface utilisateur de gestion Edge.
  2. Sélectionnez Admin > Virtual Hosts (Admin > Hôtes virtuels).
  3. Sélectionnez l'environnement dans la liste déroulante.

    Edge affiche une liste d'hôtes virtuels pour cet environnement.

  4. Pour créer un hôte virtuel, sélectionnez + Hôte virtuel.

    Edge affiche le formulaire Créer un hôte virtuel.

    Vous pouvez également cliquer sur le nom d'un hôte virtuel existant pour le modifier.

  5. Définissez votre nouvel hôte virtuel. Notez que le champ Base URL (URL de base) doit inclure le protocole (c'est-à-dire, ajoutez le préfixe "http://" ou "https://" à la valeur du champ).

    Notez également les points suivants:

    • Vous pouvez créer autant d'hôtes virtuels que vous le souhaitez
    • TLS est facultatif et peut être de version 1.0, 1.1 ou 1.2.
    • Le port de l'hôte virtuel est configurable
  6. Cliquez sur le bouton Créer pour enregistrer votre nouvel hôte virtuel.

Créer un hôte virtuel avec l'API

Pour créer un hôte virtuel avec l'API, créez un objet XML qui définit l'hôte virtuel. Par exemple, l'objet XML suivant définit un hôte virtuel qui utilise le protocole HTTP:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

Notez que l'hôte virtuel contient une propriété name. Utilisez la valeur de la propriété name pour configurer un proxy d'API afin d'utiliser l'hôte virtuel.

Vous pouvez ensuite accéder à un proxy d'API via cet hôte virtuel en envoyant une requête à:

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

Où :

  • http ou https: si l'hôte virtuel est configuré pour prendre en charge le protocole TLS, utilisez HTTPS. Si l'hôte virtuel n'est pas compatible avec TLS, utilisez HTTP.
  • routerIP:port est l'adresse IP et le numéro de port de l'hôte virtuel.
  • proxy-base-path et resource-path sont définis lorsque vous créez le proxy d'API.

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. À la place, vous définissez une entrée DNS pour le routeur et le port. Exemple :

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Si vous définissez l'entrée DNS, vous devez créer un alias d'hôte pour l'hôte virtuel qui correspond au nom de domaine de l'entrée DNS. L'alias d'hôte doit correspondre à la chaîne que le client transmet dans l'en-tête Host. Dans l'exemple ci-dessus, vous devez spécifier l'alias d'hôte api.myCompany.com.

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

Pour créer un hôte virtuel qui utilise le protocole HTTP, procédez comme suit:

  1. Créez l'hôte virtuel à l'aide de l'API Créer un hôte virtuel, où ms-IP est l'adresse IP ou le nom de domaine du nœud de serveur de gestion:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. Créez l'enregistrement DNS pour l'hôte virtuel correspondant à l'alias d'hôte.
  3. Si vous disposez de proxys d'API existants, ajoutez l'hôte virtuel à l'élément <HTTPConnection> dans le point de terminaison du proxy. L'hôte virtuel est ajouté automatiquement à tous les nouveaux proxys d'API. Consultez la section Configurer un proxy d'API pour utiliser un hôte virtuel.

Modifier un hôte virtuel

Pour modifier un hôte virtuel, procédez comme suit:

  1. Mettez à jour l'hôte virtuel à l'aide de l'API Mettre à jour un hôte virtuel, où <ms-IP> est l'adresse IP ou le nom de domaine du nœud du serveur de gestion. Vous devez spécifier la définition complète de l'hôte virtuel dans le corps de la requête, et pas seulement les éléments que vous souhaitez modifier. Dans cet exemple, vous modifiez le numéro de port de l'hôte virtuel de 9008 à 9009:

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. Pour Edge for Private Cloud versions 4.16.01 et 4.16.05 uniquement, si vous modifiez un hôte virtuel existant et que vous activez TLS ou désactivez TLS sans modifier le numéro de port, procédez comme suit :
    1. Arrêtez le routeur:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Supprimez tous les fichiers de /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Démarrez le routeur:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Répétez l'opération pour tous les routeurs.