A reverse proxy server is a type of proxy server that is deployed between clients and back-end/origin servers, for example, an HTTP server such as NGINX, Apache, etc.. or application servers written in Nodejs, Python, Java, Ruby, PHP, and many other programming languages.
C’est un serveur passerelle ou intermédiaire qui prend une demande du client, la transmet à un ou plusieurs serveurs en aval, et récupère ensuite la réponse du serveur et la renvoie au client, ce qui donne l’impression que le contenu provient du serveur proxy inverse lui-même.
En général, un serveur proxy inverse est un proxy orienté vers l’intérieur utilisé en tant que ‘frontal’ pour contrôler et protéger l’accès aux serveurs en aval sur un réseau privé : il est généralement déployé derrière le pare-feu réseau.
Il aide les serveurs en aval à obtenir l’anonymat pour renforcer leur sécurité. Dans l’infrastructure informatique, un serveur proxy inverse peut également fonctionner comme pare-feu d’application, répartiteur de charge, terminateur TLS, accélérateur web (en mettant en cache du contenu statique et dynamique), et bien plus encore.
Dans cet article, nous passerons en revue les 10 meilleurs serveurs proxy inverse open source que vous pouvez utiliser sur un système Linux.
Table des matières
1. HAProxy – Équilibreur de charge TCP/HTTP
HAProxy (HAProxy, qui signifie Proxy à haute disponibilité), est un logiciel d’équilibrage de charge et de proxying gratuit, open source, très rapide, fiable et de premier ordre pour les applications basées sur TCP et HTTP, conçu pour une haute disponibilité.
HAProxy est un proxy inverse HTTP, un proxy TCP et normalisateur, 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, et plus encore. C’est aussi une protection contre les attaques DDoS et les abus de service.
Il est alimenté par un moteur à événements, non bloquant, qui combine une couche d’E/S très rapide avec un planificateur multi-threadé basé sur la priorité qui lui permet de traiter facilement des dizaines de milliers de connexions simultanées.
Notamment, HAProxy utilise le protocole PROXY pour transmettre les informations de connexion du client aux serveurs backend ou d’origine afin qu’une application obtienne toutes les informations pertinentes.
Certaines des fonctionnalités de base de HAProxy incluent la mise en proxy, la prise en charge de SSL, la surveillance à la fois des états des serveurs et de leur état, la haute disponibilité, l’équilibrage de charge, la stickiness (maintien d’un visiteur sur le même serveur même en cas d’événements différents), la commutation de contenu, la réécriture et la redirection HTTP, la protection du serveur, la journalisation, les statistiques, et bien plus encore.
2. NGINX – (Serveur Web HTTP et Proxy Inverse)
NGINX est un serveur HTTP et un proxy inverse gratuit, open source, haute performance et très populaire. Il fonctionne également comme un serveur proxy IMAP/POP3. NGINX est bien connu pour ses performances élevées, sa stabilité, son ensemble de fonctionnalités riche, sa configuration simple et flexible, et sa faible consommation de ressources (notamment une empreinte mémoire réduite).
Tout comme HAProxy, NGINX a une architecture basée sur les événements, donc elle n’a aucun problème à gérer des dizaines de milliers de connexions concurrentes, car elle utilise le protocole PROXY de HAProxy.
NGINX prend en charge la mise en cache accélérée et le proxy inverse avec le module ngx_http_proxy_module, qui permet de transmettre des requêtes à un autre serveur via des protocoles autres que HTTP, tels que FastCGI, uwsgi, SCGI et Memcached.
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. Le module ngx_http_upstream_module permet de définir des groupes de serveurs backend pour distribuer les requêtes des clients.
Cela rend vos applications plus robustes, disponibles et fiables, hautement évolutives, avec un temps de réponse et un débit améliorés. De plus, en ce qui concerne la sécurité, il prend en charge la terminaison SSL/TLS et de nombreuses autres fonctionnalités de sécurité.
Des articles utiles sur le serveur web Nginx que vous pourriez aimer lire:
3. Varnish – (Proxy de cache inverse)
Cache HTTP Varnish (ou Cache Varnish ou simplement Varnish) est un logiciel proxy inversé de mise en cache gratuit, open-source, haute performance et très populaire, mieux connu sous le nom d’accélérateur d’application Web, conçu pour améliorer les performances HTTP en utilisant une mise en cache côté serveur.
Il est déployé entre un client et un serveur Web HTTP ou un serveur d’application ; chaque fois qu’un client demande des informations ou une ressource à un serveur Web, Varnish stocke une copie des informations, donc la prochaine fois que le client demande les mêmes informations, Varnish les servira sans envoyer de demande au serveur Web, réduisant ainsi la charge sur le serveur et accélérant la livraison de contenu Web.
Varnish utilise un langage de configuration flexible appelé Langage de Configuration Varnish (VLC) qui, entre autres, permet aux administrateurs système de configurer comment les demandes entrantes doivent être traitées, quel contenu doit être servi et 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 Varnish (VMODs) et les utilisateurs peuvent écrire leurs propres modules personnalisés ou utiliser des modules fournis par la communauté.
La principale limitation de Varnish est son manque de prise en charge du SSL/TLS. La seule façon d’activer le HTTPS est de déployer un terminateur SSL/TLS ou un déchargeur tel que HAProxy ou NGINX devant lui.
4. Træfɪk – (Le Proxy d’Application Natif au Cloud)
Træfɪk (prononcé Traffic) est un proxy inverse HTTP gratuit, open source, moderne et rapide, ainsi qu’un équilibrage de charge pour le déploiement de micro-services qui prend en charge plusieurs algorithmes d’équilibrage de charge.
Il peut interagir avec différents fournisseurs (ou mécanismes de découverte de service ou outils d’orchestration) tels que Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm et Zookeeper.
Sa fonctionnalité appréciable est sa capacité à gérer automatiquement et dynamiquement sa configuration, découvrant ainsi la configuration adaptée à vos services. Il le fait en analysant votre infrastructure pour trouver des informations pertinentes et en découvrant quel service répond à 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 incluent la prise en charge des WebSockets, d’HTTP/2 et de GRPC, le rechargement à chaud (met à jour en continu sa configuration sans redémarrage), HTTPS en utilisant des certificats Let’s Encrypt (prise en charge des certificats wildcard) 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 surveiller les événements. Il prend également en charge les disjoncteurs, les tentatives de requête, la limitation de débit et l’authentification de base.
5. Serveur Proxy Apache Traffic Server – (Inverser et Avancer)
Autrefois un produit commercial détenu par Yahoo qui a ensuite été transféré à la Fondation Apache, le Serveur Proxy Apache Traffic est un serveur proxy inverse et avancé gratuit, open source et rapide.
Le Serveur Traffic fonctionne également comme un équilibrage de charge et peut participer à des hiérarchies de cache flexibles. On sait qu’il a traité plus de 400 To de trafic par jour chez Yahoo.
Il dispose d’un ensemble de maintien de connexion, 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. Squid – (Proxy HTTP de Mise en Cache et de Transmission)
Squid est un serveur proxy et démon de cache Web gratuit, open source et bien connu qui prend en charge différents protocoles tels que HTTP, HTTPS, FTP, et plus encore. Il dispose d’un mode proxy inverse (accélérateur httpd) qui met en cache les demandes entrantes pour les données sortantes.
Il prend en charge de riches options d’optimisation du trafic, le contrôle d’accès, l’autorisation, les installations de journalisation, et bien plus encore.
7. Pound – (Proxy Inverse et Équilibrage de Charge)
A Pound is another free and open-source, lightweight reverse proxy and load balancer and front-end for web servers. It is also an SSL terminator (that decrypts HTTPS requests from clients and sends them as plain HTTP to the back-end servers).
Un désinfectant HTTP/HTTPS (qui vérifie les requêtes pour leur correction et n’accepte que celles bien formées) et un serveur de secours.
8. Apache – (Serveur Web HTTP)
Serveur HTTP Apache (également connu sous le nom de HTTPD), le serveur web le plus populaire au monde peut également être déployé et configuré pour agir en tant que proxy inverse.
Apache excelle dans le routage des requêtes des clients vers des serveurs backend, renforçant la sécurité, l’équilibrage de charge et l’optimisation des performances des applications web. En agissant comme un intermédiaire, Apache peut distribuer efficacement le trafic entrant à plusieurs instances de serveurs, garantissant une haute disponibilité et des expériences utilisateur fluides.
Ses options de configuration robustes et personnalisables en font une option de choix pour les organisations qui recherchent une solution fiable pour les besoins de proxy inverse, que ce soit pour le cache de contenu ou la livraison d’applications.
9. Skipper – (Routeur HTTP et Proxy inverse)
Skipper est un routeur HTTP et proxy inverse open-source gratuit pour la composition de services, y compris des cas d’utilisation tels que l’ingress Kubernetes.
Il est conçu pour gérer un nombre important de définitions de routes HTTP dynamiquement configurées, dépassant 800 000 routes, avec des conditions de recherche complexes, et offrant la flexibilité d’améliorer le flux de requêtes avec des filtres.
Il peut être déployé tel quel, ou étendu en intégrant une logique de recherche, de filtre personnalisée et des sources de configuration.
10 Caddy 2 – Serveur rapide avec HTTPS automatique
Caddy 2 est un serveur web et proxy inverse open-source réputé pour sa simplicité et sa polyvalence, qui offre une interface conviviale et HTTPS automatique par défaut, ce qui en fait une option accessible pour les nouveaux venus et les utilisateurs expérimentés.
Caddy 2 est conçu pour gérer facilement l’hébergement web, HTTP/2, l’équilibrage de charge et la mise en proxy, améliorant ainsi les performances et la sécurité des sites web. Sa nature open source encourage les contributions de la communauté, et il a gagné en popularité pour sa facilité d’utilisation et ses fonctionnalités modernes dans le monde de l’hébergement web et de la gestion de serveurs.
Conclusion
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 réflexions avec nous via le formulaire de feedback ci-dessous.
Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/