Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
Dans Apigee Edge, un routeur gère tout le trafic API entrant. Cela signifie que toutes les requêtes HTTP et HTTPS adressées à un proxy d'API Edge sont d'abord traitées par un routeur Edge. Par conséquent, la requête de proxy d'API doit être dirigée vers l'adresse IP et le port ouvert d'un routeur.
Un hôte virtuel vous permet d'héberger plusieurs noms de domaine sur un seul serveur ou groupe de serveurs. Pour Edge, les serveurs correspondent aux routeurs Edge. En définissant des hôtes virtuels sur un routeur, vous pouvez gérer les requêtes adressées à plusieurs domaines.
Un hôte virtuel sur Edge définit un protocole (HTTP ou HTTPS), ainsi qu'un port de routeur et un alias d'hôte. L'alias d'hôte est généralement un nom de domaine DNS qui correspond à l'adresse IP d'un routeur.
Par exemple, l'image suivante montre un routeur avec deux définitions d'hôte virtuel :
Dans cet exemple, il existe deux définitions d'hôte virtuel. L'une gère les requêtes HTTPS sur le domaine domainName1, l'autre 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 d'hôte et le numéro de port 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.
Voici un exemple de configuration pour les hôtes virtuels :
Antimodèle
Définir plusieurs hôtes virtuels avec le même alias d'hôte et le même numéro de port dans le même environnement ou dans des environnements différents d'une organisation, ou entre plusieurs organisations, entraînera une confusion lors du routage des requêtes API et pourra provoquer des erreurs ou un comportement inattendu.
Prenons un exemple pour expliquer les implications de l'utilisation de plusieurs hôtes virtuels avec le même alias d'hôte.
Supposons qu'il existe deux hôtes virtuels sandbox and secure définis
avec le même alias d'hôte, c'est-à-dire api.company.abc.com dans un environnement :
Avec la configuration ci-dessus, deux scénarios peuvent se produire, comme décrit dans les sections suivantes.
Scénario 1 : Un proxy d'API est configuré pour n'accepter les requêtes que pour l'un des hôtes virtuels sandbox
<ProxyEndpoint name="default">
...
<HTTPProxyConnection>
<BasePath>/demo</BasePath>
<VirtualHost>sandbox</VirtualHost>
</HTTPProxyConnection>
...
</ProxyEndpoint>Dans ce scénario, lorsque les applications clientes appellent un proxy d'API spécifique à l'aide de l'
alias d'hôte api.company.abc.com, elles reçoivent par intermittence des erreurs 404 avec le message suivant :
Unable to identify proxy for host: secure
En effet, le routeur envoie les requêtes aux hôtes virtuels sandboxet secure. Lorsque les requêtes sont routées vers l'hôte virtuel sandbox, les applications clientes
reçoivent une réponse positive. Toutefois, lorsque les requêtes sont routées vers l'hôte virtuel secure,
les applications clientes reçoivent une erreur 404, car le proxy d'API n'est pas configuré pour accepter les requêtes sur
l'hôte virtuel secure.
Scénario 2 : Un proxy d'API est configuré pour accepter les requêtes pour les deux hôtes virtuels sandbox et secure
<ProxyEndpoint name="default">
...
<HTTPProxyConnection>
<BasePath>/demo</BasePath>
<VirtualHost>sandbox</VirtualHost>
<VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>
...
</ProxyEndpoint>Dans ce scénario, lorsque les applications clientes appellent un proxy d'API spécifique à l'aide de l'
alias d'hôte api.company.abc.com, elles reçoivent une réponse valide en fonction de la logique du proxy.
Toutefois, cela entraîne le stockage de données incorrectes dans Analytics, car les requêtes API sont routées vers les deux hôtes virtuels, alors que les requêtes réelles étaient destinées à n'être envoyées qu'à un seul hôte virtuel.
Cela peut également affecter les informations de journalisation et toutes les autres données basées sur les hôtes virtuels.
Impact
- Erreurs 404, car les requêtes API peuvent être routées vers un hôte virtuel pour lequel le proxy d'API n'est pas configuré pour accepter les requêtes.
- Données Analytics incorrectes, car les requêtes API sont routées vers tous les hôtes virtuels ayant le même alias d'hôte, alors que les requêtes n'ont été effectuées que pour un hôte virtuel spécifique.
Bonnes pratiques
- Ne définissez pas plusieurs hôtes virtuels avec le même alias d'hôte et le même numéro de port dans le même environnement, ou dans des environnements différents d'une organisation.
Si vous devez définir plusieurs hôtes virtuels, utilisez des alias d'hôte différents dans chacun de ces hôtes virtuels, comme indiqué ci-dessous :
