Un serveur proxy inverse est un type de serveur proxy qui est déployé entre les clients et les serveurs principaux / d’origine, par exemple un HTTP serveur tel que NGINX, Apache, etc. ou des serveurs d’applications écrits en Nodejs, Python, Java, Rubis, PHPet de nombreux autres langages de programmation.
C’est une passerelle ou un serveur intermédiaire qui prend une demande client, la transmet à un ou plusieurs serveurs back-end, puis récupère la réponse du serveur et la renvoie au client, donnant ainsi l’impression que le contenu provient du serveur proxy inverse lui-même.
En règle générale, un serveur proxy inverse est un proxy interne utilisé comme un ‘l’extrémité avant‘pour contrôler et protéger l’accès aux serveurs back-end sur un réseau privé: il est généralement déployé derrière le pare-feu du réseau.
Il aide les serveurs principaux à atteindre l’anonymat pour améliorer leur sécurité. Dans une infrastructure informatique, un proxy inverse peut également fonctionner comme pare-feu d’application, équilibreur de charge, terminateur TLS, accélérateur Web (par mise en cache de contenu statique et dynamique), et beaucoup plus.
Dans cet article, nous passerons en revue les 8 meilleurs serveurs proxy inverse open source que vous pouvez utiliser sur un système Linux.
1. HAProxy
HAProxy (HAProxy, Qui veut dire Proxy haute disponibilité), un logiciel d’équilibrage de charge et de proxy gratuit, open source, très rapide, fiable et de premier ordre pour les applications TCP et HTTP, conçu pour une haute disponibilité.
HAProxy est un proxy inverse HTTP, un proxy et normalisateur TCP, un terminateur / initiateur / déchargeur SSL / TLS, un proxy de mise en cache, un déchargeur de compression HTTP, un régulateur de trafic, un commutateur basé sur le contenu, une passerelle FastCGI, etc. C’est également une protection contre les attaques DDoS et les abus de service.
Il est alimenté par un moteur non bloquant, piloté par les événements, qui combine une couche d’E / S très rapide avec un planificateur multi-thread basé sur les priorités qui lui permet de gérer facilement des dizaines de milliers de connexions simultanées. Notamment, HAProxy utilise le PROCURATION protocole pour transmettre les informations de connexion du client aux serveurs principaux ou d’origine afin qu’une application obtienne toutes les informations pertinentes.
Certaines des fonctionnalités de base de HAProxy incluent le proxy, la prise en charge SSL, la surveillance à la fois des états du serveur et de son propre état, la haute disponibilité, l’équilibrage de charge, la rigidité (maintenir un visiteur sur le même serveur même pendant divers événements), la commutation de contenu, la réécriture HTTP et la redirection, protection du serveur, journalisation, statistiques et bien plus encore.
2. NGINX
NGINX, un serveur HTTP et proxy inverse gratuit, open-source, performant et très populaire. Il fonctionne également comme un IMAP / POP3 Serveur proxy. NGINX est bien connu pour ses performances élevées, sa stabilité, son riche ensemble de fonctionnalités, sa configuration simple et flexible et sa faible consommation de ressources (particulièrement faible encombrement mémoire).
Juste comme HAProxy, NGINX a une architecture événementielle, donc il n’a aucun problème à gérer des dizaines de milliers de connexions simultanées, car il utilise PROXY DE HAProxy protocole.
NGINX prend en charge le proxy inverse accéléré avec mise en cache à l’aide de ngx_http_proxy_module module, qui permet de transmettre des requêtes à un autre serveur via des protocoles autres que HTTP, tels que FastCGI, uwsgi, SCGI et memcached.
Surtout, il prend en charge l’équilibrage de charge et la tolérance aux pannes, qui sont des aspects vitaux des systèmes informatiques distribués à grande échelle. La ngx_http_upstream_module Le module permet de définir des groupes de serveurs backend pour distribuer les requêtes provenant des clients. Cela rend vos applications plus robustes, disponibles et fiables, hautement évolutives, avec un temps de réponse et un débit. De plus, en ce qui concerne la sécurité, il prend en charge la terminaison SSL / TLS et tant d’autres fonctionnalités de sécurité.
Articles utiles sur le serveur Web Nginx que vous aimeriez peut-être lire:
3. Cache HTTP Varnish
Cache HTTP vernis (ou Cache de vernis ou simplement Vernis) est un logiciel de proxy inverse de mise en cache gratuit, open source, hautes performances et très populaire, mieux connu sous le nom d’accélérateur d’applications Web, conçu pour améliorer les performances HTTP à l’aide de la mise en cache côté serveur.
Il est déployé entre un client et un serveur Web HTTP ou serveur d’applications; chaque fois qu’un client demande des informations ou une ressource à un serveur Web, Varnish stocke une copie des informations, de sorte que la prochaine fois que le client demande les mêmes informations, Varnish la servira sans envoyer de demande au serveur Web, réduisant ainsi la charge sur le serveur et accélère ainsi la diffusion du contenu Web.
Vernis utilise un langage de configuration flexible connu sous le nom de Langue de configuration du vernis (VLC) qui, entre autres, permet aux administrateurs système de configurer comment les demandes entrantes doivent être traitées, quel contenu doit être servi, d’où et comment la demande ou la réponse doit être modifiée, et bien plus encore.
Le vernis est également extensible – il peut être étendu en utilisant Modules de vernis (VMOD) et les utilisateurs peuvent écrire leurs modules personnalisés ou utiliser les modules fournis par la communauté.
La principale limitation de Vernis est son manque de soutien pour SSL / TLS. La seule façon d’activer HTTPS est de déployer un SSL / TLS terminateur ou déchargeur tel que HAProxy ou NGINX devant lui.
4. Træfɪk
Træfɪk (prononcé Trafic) est un proxy inverse et un équilibreur de charge HTTP gratuit, open source, moderne et rapide pour le déploiement de micro-services prenant en charge plusieurs algorithmes d’équilibrage de charge. Il peut s’interfacer avec divers fournisseurs (ou mécanismes de découverte de services ou outils d’orchestration) tels que Kubernates, Docker, Etcd, Rest API, Mesos / Marathon, Swarm et Zookeper.
Sa caractéristique adorable est sa capacité à gérer sa configuration automatiquement et dynamiquement en découvrant ainsi la bonne configuration pour vos services. Pour ce faire, il analyse votre infrastructure pour trouver des informations pertinentes et découvre quel service sert quelle demande du monde extérieur. Les fournisseurs indiquent à Træfɪk où se trouvent vos applications ou micro-services.
Les autres fonctionnalités de Træfɪk sont prises en charge pour WebSockets, HTTP / 2 et GRPC, et le rechargement à chaud (met à jour en permanence sa configuration sans redémarrage), HTTPS à l’aide de certificats Let’s Encrypt (prise en charge des certificats génériques) et expose une API REST. Il conserve également les journaux d’accès et fournit des métriques (Rest, Prometheus, Datadog, Statsd, InfluxDB).
De plus, Træfɪk est livré avec une interface utilisateur Web simple basée sur HTML utilisée pour garder un œil sur les événements. Il prend également en charge les disjoncteurs, les demandes de relance, la limitation de débit et l’authentification de base.
5. Serveur de trafic Apache
Anciennement un produit commercial appartenant à Yahoo qui a ensuite été remis au Fondation Apache, Serveur de trafic Apache est un serveur proxy avant et inverse gratuit, open source et à mise en cache rapide.
Traffic Server fonctionne également comme un équilibreur de charge et peut participer à des hiérarchies de cache flexibles. Il est connu pour avoir traité plus de 400 To par jour de trafic chez Yahoo.
Il propose un ensemble de demandes de contenu persistantes, de filtrage ou d’anonymisation des demandes de contenu, et est extensible via une API qui permet aux utilisateurs de créer des plugins personnalisés pour modifier les en-têtes HTTP, gérer les demandes ESI ou concevoir de nouveaux algorithmes de cache.
6. Serveur proxy Squid
Calamar est un serveur proxy gratuit, open source et bien connu et un démon de cache Web qui prend en charge divers protocoles tels que HTTP, HTTPS, FTP, etc. Il dispose d’un mode proxy inverse (httpd-accelerator) qui met en cache les demandes entrantes de données sortantes.
Il prend en charge de riches options d’optimisation du trafic, le contrôle d’accès, l’autorisation, les fonctions de journalisation et bien plus encore.
7. Livre
UNE Livre est un autre proxy inverse et équilibreur de charge léger et gratuit et open source pour les serveurs Web. Il s’agit également d’un terminateur SSL (qui décrypte les requêtes HTTPS des clients et les envoie en tant que simple HTTP aux serveurs principaux), un désinfectant HTTP / HTTPS (qui vérifie l’exactitude des demandes et n’accepte que les demandes bien formées), et un échec -sur serveur.
8. Serveur HTTP Apache
Dernier point mais non le moindre, nous avons un HTTP Apache serveur (également appelé HTTPD), le serveur Web le plus populaire au monde. Il peut également être déployé et configuré pour agir en tant que proxy inverse.
De plus, vous pouvez également commander Skipper, le petit nouveau du quartier. Il s’agit d’un routeur HTTP gratuit et open source et d’un proxy inverse pour la composition de services, y compris des cas d’utilisation tels que Kubernetes Ingress.
C’est tout ce que nous avions pour vous dans ce guide. Pour plus d’informations sur chaque outil de cette liste, consultez leurs sites Web respectifs. N’oubliez pas de partager vos impressions avec nous via le formulaire de commentaires ci-dessous.
.