Configurer un hôte virtuel

Edge pour Private Cloud version 4.17.01

Un hôte virtuel sur Edge définit les domaines et les ports du routeur Edge sur lesquels un proxy d'API est exposé et, par extension, l'URL que les applications utilisent pour accéder à un proxy d'API. Un hôte virtuel définit également si l'accès au proxy d'API est effectué à l'aide du protocole HTTP ou du protocole HTTPS chiffré.

Dans le cadre du processus d'intégration Edge, vous devez créer une organisation, un environnement et un hôte virtuel. Edge fournit la commande setup-org afin de faciliter ce processus pour les nouveaux utilisateurs.

Lorsque vous créez l'hôte virtuel, vous devez spécifier les informations suivantes:

  • Le nom de l'hôte virtuel que vous utilisez pour le référencer dans vos proxys d'API.
  • Port sur le routeur de l'hôte virtuel. En règle générale, ces ports commencent à 9 001 et sont incrémentés d'une unité pour chaque nouvel hôte virtuel.
  • L'alias d'hôte de l'hôte virtuel. 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, 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 (Hôte) 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 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 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 spécifiez l'adresse IP du routeur et transmettez l'alias d'hôte dans l'en-tête d'hôte.

    Remarque: La commande curl, la plupart des navigateurs et de nombreux autres utilitaires ajoutent automatiquement l'en-tête Host avec le domaine dans le cadre de la requête. Vous pouvez donc utiliser une commande curl sous la forme suivante:


    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

Options disponibles lorsque vous ne disposez pas 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, sous la forme <routerIP>:port. Exemple :

192.168.1.31:9001

Ensuite, exécutez une commande curl sous la forme suivante:

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. 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 effectuer une requête comme si vous aviez une entrée DNS:

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

Utiliser un port protégé dans un hôte virtuel

Si vous souhaitez créer un hôte virtuel qui lie le routeur à un port protégé, tel que des numéros de port inférieurs à 1 024, vous devez configurer le routeur pour qu'il s'exécute en tant qu'utilisateur ayant accès à ces ports. Par défaut, le routeur s'exécute sous le nom d'utilisateur "apigee" qui n'a pas accès aux ports privilégiés.

Pour exécuter le routeur sous un autre nom d'utilisateur:

  1. En mode root, créez le fichier /opt/apigee/etc/edge-router.d/RUN_USER.sh.
  2. Ajoutez l'entrée suivante au fichier:
    RUN_USER=root
    Si vous ne souhaitez pas exécuter le routeur en mode root, spécifiez un utilisateur ayant accès au port.
  3. Enregistrez le fichier.
  4. Si vous avez spécifié un utilisateur autre que root, remplacez le propriétaire du fichier par cet utilisateur:
    > chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. Redémarrez le routeur:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-router restart