[Éditeur – Cet article a été mis à jour pour refléter les fonctionnalités prises en charge par NGINX Plus et les services d’équilibrage de charge Azure à partir de juin 2021. Il fait également référence à l' API NGINX Plus , qui remplace et supprime le module de configuration dynamique distinct mentionné dans la version originale de l'article.]
Les clients utilisant Microsoft Azure ont trois options pour équilibrer la charge : NGINX Plus , les services d’équilibrage de charge Azure ou NGINX Plus en conjonction avec les services d’équilibrage de charge Azure. Cet article vise à vous donner suffisamment d'informations pour prendre une décision et vous montre également comment l'utilisation de NGINX Plus avec Azure Load Balancer peut vous offrir un équilibreur de charge HTTP hautement disponible avec de riches fonctionnalités de couche 7 .
Microsoft Azure offre à ses utilisateurs deux choix d'équilibreur de charge : Azure Load Balancer pour l’équilibrage de charge TCP/UDP de base (au niveau de la couche 4, la couche réseau) et Azure Application Gateway pour l’équilibrage de charge HTTP/HTTPS (au niveau de la couche 7, la couche application) . Bien que ces solutions fonctionnent pour des cas d’utilisation simples, elles ne fournissent pas de nombreuses fonctionnalités fournies en standard avec NGINX Plus.
Voici une comparaison générale entre NGINX Plus et les offres d’équilibrage de charge Azure :
Fonctionnalité | NGINX Plus | Équilibreur de charge Azure | Passerelle d'application Azure | NGINX Plus et Azure Load Balancer |
---|---|---|---|---|
Équilibrage de charge HTTP et HTTPS | ✅ | ❌ | ✅ | ✅ |
Équilibrage de charge HTTP/2 | ✅ | ❌ | ✅ | ✅ |
Équilibrage de charge WebSocket | ✅ | ❌ | ✅ | ✅ |
Équilibrage de charge TCP/UDP | ✅ | ✅ | ❌ | ✅ |
Méthodes d'équilibrage de charge | Avancé | Simple | Simple | Avancé |
Persistance de la session | Avancé | Simple | Simple | Avancé |
Vérifications de santé HTTP | Avancé | Simple | Simple | Avancé |
Contrôles de santé TCP/UDP | Avancé | Simple | ❌ | Avancé |
Terminaison SSL/TLS | ✅ | ❌ | ✅ | ✅ |
Limites de débit et de connexion | ✅ | ❌ | ❌ | ✅ |
Réécriture et redirection d'URL | ✅ | ❌ | ✅ | ✅ |
Mappage des requêtes URL | ✅ | ❌ | ✅ | ✅ |
Cluster NGINX Plus actif-actif | ❌ | ❌ | ❌ | ✅ |
Explorons maintenant certaines des différences entre NGINX Plus et les services d’équilibrage de charge Azure, leurs fonctionnalités uniques et la manière dont NGINX Plus et les équilibreurs de charge Azure peuvent fonctionner ensemble.
NGINX Plus propose un choix de plusieurs méthodes d'équilibrage de charge en plus de la méthode Round Robin par défaut :
Adresse
IP
source
et Port
source
, ou l'URI.deux
paramètres sont inclus, NGINX Plus sélectionne deux serveurs au hasard, puis choisit entre eux en utilisant soit l'algorithme Least Connections (par défaut), soit Least Time, selon la configuration.Toutes les méthodes peuvent être étendues en attribuant des valeurs de poids différentes à chaque serveur backend. Pour plus de détails sur les méthodes, consultez le Guide d'administration NGINX Plus.
Azure Load Balancer propose une méthode d’équilibrage de charge, Hash , qui utilise par défaut une clé basée sur les champs d’en-tête Adresse
IP
source
, Port
source
, Adresse
IP
de destination
, Port
de destination
et Protocole
pour choisir un serveur back-end.
Azure Application Gateway fournit uniquement une méthode round-robin .
La persistance de session , également connue sous le nom de sessions persistantes ou d'affinité de session , est nécessaire lorsqu'une application exige que toutes les requêtes d'un client spécifique continuent d'être envoyées au même serveur principal, car l'état du client n'est pas partagé entre les serveurs principaux.
NGINX Plus prend en charge trois méthodes avancées de persistance de session :
NGINX Plus propose également deux méthodes de persistance de session de base, implémentées comme deux des méthodes d'équilibrage de charge décrites ci-dessus :
l’adresse
IP
source
et le port
source
, ou l’URI.Azure Load Balancer prend en charge l’équivalent de la méthode de hachage NGINX Plus, bien que la clé soit limitée à certaines combinaisons des champs d’en-tête Adresse
IP
source
, Port
source
, Adresse
IP
de destination
, Port
de destination
et Protocole
.
Azure Application Gateway prend en charge l’équivalent de la méthode Sticky Cookie NGINX Plus avec les limitations suivantes : vous ne pouvez pas configurer le nom du cookie, sa date d’expiration, le domaine, le chemin d’accès ou les attributs de cookie HttpOnly
ou Secure
.
Note: Lorsque vous utilisez Azure Load Balancer, la méthode de hachage IP NGINX Plus ou la méthode de hachage IP NGINX Plus avec l’ adresse
IP
source
incluse dans la clé, la persistance de session fonctionne correctement uniquement si l’adresse IP du client reste la même tout au long de la session. Ce n’est pas toujours le cas, comme lorsqu’un client mobile passe d’un réseau WiFi à un réseau cellulaire, par exemple. Pour garantir que les requêtes continuent d’atteindre le même serveur principal, il est préférable d’utiliser l’une des méthodes avancées de persistance de session répertoriées ci-dessus.
Azure Load Balancer et Azure Application Gateway prennent en charge les contrôles d’intégrité des applications de base. Vous pouvez spécifier l'URL demandée par l'équilibreur de charge et il considère que le serveur principal est sain s'il reçoit le HTTP attendu200
code de retour. Vous pouvez spécifier la fréquence de vérification de l'état et le délai d'expiration avant que le serveur ne soit considéré comme défectueux. Avec Azure Application Gateway, vous pouvez également personnaliser le code de réponse attendu et le faire correspondre au contenu du corps de la réponse.
NGINX Plus étend cette fonctionnalité avec des contrôles de santé avancés . En plus de spécifier l'URL à utiliser, avec NGINX Plus, vous pouvez insérer des en-têtes dans la demande et rechercher différents codes de réponse, et examiner à la fois les en-têtes et le corps de la réponse.
Une fonctionnalité utile associée à NGINX Plus est le démarrage lent . NGINX Plus augmente progressivement la charge sur un serveur nouveau ou récemment récupéré afin qu'il ne soit pas submergé par les connexions. Cela est utile lorsque vos serveurs principaux nécessitent un certain temps de préchauffage et échoueront s'ils reçoivent leur pleine part de trafic dès qu'ils s'avèrent sains.
NGINX Plus prend également en charge les contrôles de santé sur les serveurs TCP et UDP , qui vous permettent de spécifier une chaîne à envoyer et une chaîne à rechercher dans la réponse.
Azure Load Balancer prend en charge les contrôles d’intégrité TCP, mais n’offre pas ce niveau de surveillance.
NGINX Plus prend en charge la terminaison SSL/TLS , tout comme Azure Application Gateway . Azure Load Balancer ne le fait pas.
Avec NGINX Plus, vous pouvez configurer plusieurs limites pour contrôler le trafic vers et depuis votre instance NGINX Plus. Il s'agit notamment de limiter les connexions entrantes , les connexions aux nœuds back-end , le taux de requêtes entrantes et le taux de transmission de données de NGINX Plus aux clients.
Azure Application Gateway et Azure Load Balancer ne prennent pas en charge les limites de débit ou de connexion. Toutefois, vous pouvez utiliser d’autres services Azure pour configurer et activer la limitation de débit.
NGINX Plus, Azure Application Gateway et Azure Load Balancer prennent tous en charge les éléments suivants :
Lorsqu'il est utilisé avec Azure Load Balancer et Azure Traffic Manager , NGINX Plus devient une solution d'équilibrage de charge hautement disponible avec de riches fonctionnalités de couche 7.
En utilisant Azure Load Balancer pour équilibrer la charge entre les instances NGINX Plus dans un groupe de disponibilité , vous créez un équilibreur de charge hautement disponible dans une région.
Vous pouvez configurer la mise à l'échelle automatique des instances NGINX Plus en fonction de l'utilisation moyenne du processeur. Cela est possible en créant des ensembles de disponibilité dans le service cloud Azure qui héberge vos instances NGINX Plus. Vous devez prendre en charge la synchronisation des fichiers de configuration NGINX Plus.
Vous pouvez également configurer la mise à l'échelle automatique de vos instances backend en fonction de l'utilisation moyenne du processeur. Cela est possible en créant des ensembles de disponibilité dans le service cloud Azure qui héberge vos instances back-end. Vous devez prendre soin d'ajouter ou de supprimer des instances backend de la configuration NGINX Plus, ce qui est possible avec l' API NGINX Plus .
Pour automatiser les mises à jour de la configuration NGINX Plus (soit en combinaison avec des ensembles de disponibilité, soit lors de l'utilisation de NGINX Plus seul), vous pouvez intégrer un système de découverte de services à NGINX Plus, soit via l' API NGINX Plus , soit via DNS, si le système dispose d'une interface DNS. Consultez nos articles de blog sur l'utilisation de NGINX Plus avec les systèmes de découverte de services populaires :
Pour un environnement distribué à l’échelle mondiale, vous pouvez utiliser Azure Traffic Manager pour distribuer le trafic des clients dans de nombreuses régions.
Azure Load Balancer et Application Gateway sont gérés par Azure Cloud et fournissent tous deux une solution d’équilibrage de charge hautement disponible.
Une fonctionnalité d’Azure Load Balancer qui n’est pas disponible dans NGINX Plus est la NAT source , dans laquelle le trafic sortant des instances back-end a la même adresse IP source que l’équilibreur de charge.
Azure Load Balancer fournit une reconfiguration automatique lors de l’utilisation de la fonctionnalité de mise à l’échelle automatique d’Azure Cloud.
Si vos exigences en matière d’équilibrage de charge sont simples, les offres d’équilibrage de charge Azure peuvent constituer une bonne solution. Lorsque les exigences deviennent plus complexes, NGINX Plus est un bon choix. Vous pouvez utiliser NGINX Plus seul ou conjointement avec Azure Load Balancer pour une haute disponibilité des instances NGINX Plus.
Pour essayer NGINX Plus sur Microsoft Azure, démarrez votre essai gratuit de 30 jours dès aujourd'hui ou contactez-nous pour discuter de vos cas d'utilisation .
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."