Antimodèle: définir plusieurs hôtes virtuels avec le même alias d'hôte et le même numéro de port

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

Dans Apigee 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 Edge sont d'abord traitées par un routeur Edge. Par conséquent, les requêtes API proxy 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 pour traiter 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 mappé à l'adresse IP d'un routeur.

Par exemple, l'image suivante montre un routeur avec deux définitions d'hôte virtuel:

Cet exemple présente deux définitions d'hôte virtuel. L'un gère les requêtes HTTPS domainName1, l'autre traite 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 du à la liste des alias d'hôtes définis par tous les hôtes virtuels afin d'identifier l'hôte virtuel gère la requête.

Voici un exemple de configuration pour des hôtes virtuels:

exemple de configuration vhost

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/différent au sein d'une organisation ou entre organisations peut être source de confusion au moment de routage des requêtes API, et peut entraîner des erreurs ou des comportements inattendus.

Prenons un exemple pour expliquer ce qu'implique le fait d'avoir plusieurs hôtes virtuels avec le même alias d'hôte.

Prenons l'exemple de deux hôtes virtuels sandbox and secure définis avec le même alias d'hôte, api.company.abc.com dans un environnement:

vhosts avec le même alias

Avec la configuration ci-dessus, il peut y avoir deux scénarios, décrits dans les sections suivantes.

Scénario 1 - un proxy d'API est configuré pour accepter les requêtes vers une seule des instances héberge un bac à sable

<ProxyEndpoint name="default">
  ...
  <HTTPProxyConnection>
    <BasePath>/demo</BasePath>
    <VirtualHost>sandbox</VirtualHost>
  </HTTPProxyConnection>
  ...
</ProxyEndpoint>

Dans ce scénario, lorsque les applications clientes effectuent les appels vers un proxy d'API spécifique à l'aide de la méthode l'alias hôte api.company.abc.com, ils 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 à la fois à sandbox et à secure. des hôtes virtuels. Lorsque les requêtes sont acheminées vers l'hôte virtuel sandbox, les applications clientes obtiendra une réponse positive. Toutefois, lorsque les requêtes sont acheminées vers l'hôte virtuel secure, les applications clientes obtiendront une erreur 404, car le proxy d'API n'est pas configuré pour accepter les requêtes sur secure hôte virtuel

Scénario 2 - Un proxy d'API est configuré pour accepter les requêtes adressées à la fois au bac à sable des hôtes virtuels et aux requêtes sécurisées

<ProxyEndpoint name="default">
  ...
  <HTTPProxyConnection>
    <BasePath>/demo</BasePath>
    <VirtualHost>sandbox</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
  ...
</ProxyEndpoint>

Dans ce scénario, lorsque les applications clientes effectuent les appels vers un proxy d'API spécifique à l'aide de la méthode l'alias hôte api.company.abc.com, ils obtiendront une réponse valide basée sur la logique du proxy.

Toutefois, cela entraîne le stockage de données incorrectes dans Analytics lorsque les requêtes API sont acheminées vers les deux hôtes virtuels, alors que les requêtes réelles visaient à être envoyées à un seul hôte virtuel.

Cela peut également affecter les informations de journalisation et toute autre donnée basée sur les hôtes virtuels.

Impact

  1. Erreurs 404, car les requêtes API peuvent être acheminées vers un hôte virtuel vers lequel le proxy d'API peut ne pas être configuré pour accepter les demandes.
  2. Les données Analytics sont incorrectes, car les requêtes API sont acheminées vers tous les hôtes virtuels ayant le le même alias d'hôte alors que les requêtes n'étaient effectuées que pour un hôte virtuel spécifique.

Bonne pratique

  • 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 différents environnements d’une organisation.
  • S'il est nécessaire de définir plusieurs hôtes virtuels, utilisez des alias d'hôte différents dans chacun des les hôtes virtuels, comme indiqué ci-dessous:

    deux fantômes

Documentation complémentaire