BLOG | NGINX

Reverse Proxy utilisant NGINX Plus

NGINX-Partie-de-F5-horiz-black-type-RGB
Vignette de Rick Nelson
Rick Nelson
Publié le 10 avril 2014

NGINX a acquis une renommée justifiée en tant que serveur Web à très hautes performances. Je pense que beaucoup de gens réalisent que NGINX peut également être utilisé comme proxy inverse, mais ils ne sont peut-être pas conscients de la puissance de ce proxy inverse.

Qu'est-ce qu'un proxy inverse ?

Commençons par prendre du recul et nous demander : qu’est-ce qu’un serveur proxy ?  Je pense que Wikipédia a une bonne définition :

« [Un] serveur proxy est un serveur (un système informatique ou une application) qui agit comme intermédiaire pour les requêtes des clients recherchant des ressources auprès d'autres serveurs. »

Un serveur proxy se situe donc entre un client et le serveur réel qui héberge les données recherchées par le client. Pour le client, le serveur proxy semble être le véritable serveur backend, et pour le serveur backend, le serveur proxy ressemble à un client. Pour définir un serveur proxy inverse, nous revenons à Wikipédia :

« [Un] proxy inverse est un type de serveur proxy qui récupère des ressources au nom d'un client à partir d'un ou de plusieurs serveurs. »

La différence est qu'un serveur proxy se trouve entre les clients et un seul serveur back-end, mais un serveur proxy inverse se trouve devant un ou plusieurs serveurs back-end et décide lequel d'entre eux utiliser pour chaque demande.

Quels sont les avantages de l’utilisation d’un proxy inverse ?

Pourquoi voudriez-vous utiliser un serveur proxy inverse ?  Les avantages sont nombreux :

  • Concurrence – Les applications Internet impliquent souvent un grand nombre de clients, chacun ouvrant plusieurs connexions, ce qui entraîne un très grand nombre de connexions aux serveurs principaux. De nombreux serveurs Web et serveurs d'applications ne gèrent pas bien un grand nombre de connexions (NGINX lorsqu'il est utilisé comme serveur Web est une exception), donc l'ajout d'un proxy inverse capable de mieux gérer plusieurs connexions peut entraîner une amélioration marquée des performances du serveur principal.
  • Résilience – Si les clients se connectent directement à un serveur principal et que celui-ci subit une panne, tous les clients actuellement connectés (ou essayant de se connecter) au serveur voient leurs requêtes échouer. Un serveur proxy inverse peut surveiller l'état des serveurs principaux et arrêter d'envoyer des requêtes à un serveur défaillant jusqu'à ce qu'il soit de nouveau en service. Les clients ne voient pas d’erreur car le proxy inverse envoie automatiquement leurs requêtes aux serveurs back-end qui sont toujours opérationnels.
  • Évolutivité – Étant donné qu’un proxy inverse est la seule « face publique » du groupe de serveurs principaux, vous pouvez ajouter et supprimer des serveurs en réponse à l’évolution de la charge de trafic.
  • Routage de couche 7 – Un proxy inverse voit le trafic dirigé vers tous les serveurs et peut prendre des décisions intelligentes sur l'endroit où envoyer chaque requête, en modifiant les requêtes et les réponses si nécessaire. Il peut prendre des décisions de routage en fonction d'un certain en-tête HTTP dans la requête, d'une partie d'une URL, de l'emplacement géographique du client, etc.
  • Mise en cache – Un proxy inverse est un excellent endroit pour effectuer la mise en cache – il est généralement beaucoup plus efficace d’y mettre en cache le contenu que d’envoyer toutes les requêtes aux serveurs back-end et de laisser chaque serveur back-end créer son propre cache.
  • Autres fonctions – En se plaçant devant les serveurs principaux, un proxy inverse peut également exécuter d’autres fonctions, telles que la gestion du trafic en fonction de la bande passante ou du taux de requêtes, la limitation de la connexion, l’intégration avec divers schémas d’autorisation, la surveillance des activités, et bien plus encore.

Utilisation de NGINX Plus comme proxy inverse

NGINX Plus introduit encore plus de fonctionnalités aux capacités renommées du serveur Web NGINX Open Source, faisant de NGINX Plus un contrôleur de distribution d'applications (ADC) complet capable de remplacer les appareils matériels propriétaires.

Voici quelques-unes des fonctionnalités disponibles dans NGINX Plus.

Équilibrage de charge

Il existe plusieurs algorithmes d'équilibrage de charge parmi lesquels choisir, pondérés et non pondérés. La persistance de session est également prise en charge. NGINX Plus peut équilibrer la charge HTTP, HTTPS, WebSocket, FastCGI, memcached, SCGI, SPDY [obsolète par HTTP/2, que NGINX Plus équilibre également la charge] et uwsgi. En savoir plus .

Contrôles de santé

La surveillance passive et active de la santé du serveur principal est prise en charge. Si NGINX Plus ne parvient pas à se connecter à un nœud, ce nœud est marqué comme étant hors service. Les contrôles de santé actifs peuvent également être configurés pour s'exécuter périodiquement sur les nœuds principaux. De plus, la fonctionnalité de démarrage lent peut être utilisée pour que NGINX Plus augmente progressivement le trafic vers un nœud qui vient d'être mis en ligne, afin d'éviter de le submerger avec une rafale de trafic important. En savoir plus .

Routage des requêtes

Le trafic peut être acheminé en fonction de n'importe quelle partie d'une demande, telle que l'adresse IP du client, le nom de l'hôte, l'URI, la chaîne de requête, les en-têtes, etc.

Réécriture des demandes et des réponses

N'importe quelle partie d'une demande ou d'une réponse peut être modifiée, y compris les en-têtes, le corps et l'URI. NGINX Plus peut également ajouter et supprimer des en-têtes. En savoir plus .

Mise en cache

Les réponses peuvent être mises en cache et vous pouvez configurer les types de contenu à mettre en cache et pendant combien de temps. Vous pouvez également purger les éléments du cache. En savoir plus .

Compression

La compression Gzip est prise en charge, avec un contrôle précis sur le contenu à compresser et le moment où utiliser la compression. En savoir plus .

Traitement SSL/TLS

Le décryptage et le cryptage SSL/TLS sont pris en charge et le décryptage peut être effectué pour de nombreux noms de domaine à l'aide de différents certificats. En savoir plus .

Surveillance et journalisation des activités en direct

Les statistiques NGINX Plus codées au format JSON sont disponibles via une simple requête HTTP. Une page Web de tableau de bord est fournie pour afficher les statistiques, ou vous pouvez les transmettre à des outils de surveillance personnalisés ou tiers. Les journaux au format personnalisé peuvent être configurés pour la journalisation locale et l'exportation vers Syslog. En savoir plus .

Et bien plus encore

NGINX possède de nombreuses autres fonctionnalités, telles que la prise en charge du streaming vidéo, la prise en charge du proxy de messagerie, la prise en charge de GeoIP, les redémarrages et les mises à niveau gracieux sans temps d'arrêt, la mise en forme du trafic, la limitation de connexion et bien plus encore. Pour plus d'informations, visitez-nous sur nginx.com et nginx.org .


« 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."