Configurer des hôtes virtuels pour le cloud privé

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Dans une installation sur site, vous avez un contrôle total sur les hôtes virtuels. Vous pouvez créer des hôtes virtuels pour n'importe quelle organisation, dans n'importe quel environnement, avec ou sans TLS.

Ce document explique comment créer un hôte virtuel simple. C'est-à-dire un qui n'est pas compatible avec TLS. Pour plus d'exemples, y compris des exemples de création d'hôtes virtuels compatibles avec TLS, consultez 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 d'hôte. 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 pour déterminer le proxy d'API qui gère la requête. Lorsque vous effectuez une requête via un hôte virtuel, spécifiez un nom de domaine correspondant à l'alias d'hôte d'un hôte virtuel, ou spécifiez 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 myapis.apigee.net sur le port 9001, une requête cURL adressée à une API via cet hôte virtuel peut utiliser l'une des formes suivantes:

  • Si vous disposez d'une entrée DNS pour myapis.apigee.net:

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Si vous ne disposez 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 spécifiez l'adresse IP du routeur et transmettez 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

Si vous ne disposez pas d'une entrée DNS, vous pouvez définir l'alias d'hôte sur l'adresse IP du routeur et le port de l'hôte virtuel, par exemple routerIP:port.

192.168.1.31:9001

Lorsque vous créez une commande curl au format ci-dessous:

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

Cette option est préférable, car elle fonctionne bien avec l'UI 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. Vous devez ensuite 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 envoyer 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

Lorsque vous créez un hôte virtuel, vous spécifiez le port du routeur utilisé par l'hôte virtuel. Par exemple, le port 9001.

Pour les versions 4.16.01 et ultérieures d'Apigee pour le cloud privé, 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 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 pour Private Cloud à l'aide de l'API ou de l'UI Edge. Ces éléments 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 d'Edge:

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

    Edge affiche la liste des 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 URL de base doit inclure le protocole (par exemple, ajouter 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 la 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 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 auprès 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 correspondant au nom de domaine de l'entrée DNS pour l'hôte virtuel. 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 spécifiez 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 utilisant le protocole HTTP, procédez comme suit:

  1. Créez l'hôte virtuel à l'aide de l'API Create a Virtual Host (Créer un hôte virtuel), où ms-IP correspond à l'adresse IP ou au nom de domaine du nœud du 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 de 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 non seulement les éléments que vous souhaitez modifier. Dans cet exemple, vous remplacez le numéro de port de l'hôte virtuel de 9008 par 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 les versions 4.16.01 et 4.16.05 d'Edge pour le cloud privé uniquement : si vous modifiez un hôte virtuel existant et que vous activez 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.