Un proxy inverse est utilisé pour fournir des services d'équilibrage de charge et, de plus en plus, pour renforcer la sécurité des applications Web à des points d'insertion stratégiques dans un réseau via des pare-feu d'applications Web, des pare-feu de diffusion d'applications et une inspection approfondie du contenu.
Dans le domaine des réseaux et du trafic Web, un proxy est un périphérique ou un serveur qui agit au nom d'autres périphériques. Il se situe entre deux entités et exécute un service. Les proxys sont des solutions matérielles ou logicielles qui se placent entre le client et le serveur afin de gérer les requêtes et parfois les réponses.
En règle générale, un serveur proxy inverse se trouve devant les serveurs Web et transmet les requêtes des clients (par exemple, un navigateur Web) à ces serveurs Web. Les ressources demandées sont ensuite renvoyées au client, apparaissant comme si elles provenaient du serveur proxy lui-même. Cela fournit un niveau supplémentaire d'abstraction et de contrôle pour garantir la fluidité du trafic réseau entre les clients et les serveurs. Un proxy inverse offre également la possibilité de diriger les requêtes en fonction d'une grande variété de paramètres tels que l'appareil de l'utilisateur, l'emplacement, les conditions du réseau, l'état de l'application et même l'heure de la journée.
Les serveurs proxy inverses et les équilibreurs de charge sont tous deux des composants d’une architecture informatique client-serveur. Tous deux agissent comme intermédiaires dans la communication entre les clients et les serveurs, exécutant des fonctions qui améliorent l'efficacité. Ils peuvent être mis en œuvre en tant qu'appareils dédiés et spécialement conçus, mais de plus en plus, dans les architectures Web modernes, ce sont des applications logicielles qui s'exécutent sur du matériel standard. Bien qu’ils semblent remplir des fonctions similaires, explorons quand et pourquoi ils sont généralement déployés sur un site Web.
Un équilibreur de charge répartit les demandes entrantes des clients entre un groupe de serveurs pour garantir une vitesse satisfaisante et un fonctionnement optimisé. Les équilibreurs de charge sont généralement déployés lorsqu'un site a besoin de plusieurs serveurs, car le volume de requêtes est trop important pour qu'un seul serveur puisse le gérer efficacement. Le déploiement de plusieurs serveurs élimine également un point de défaillance unique, rendant le site Web plus fiable. Le plus souvent, tous les serveurs hébergent le même contenu et le travail de l'équilibreur de charge est de répartir la charge de travail de manière à optimiser l'utilisation de la capacité de chaque serveur, à éviter la surcharge sur n'importe quel serveur et à générer la réponse la plus rapide possible au client.
Un proxy inverse accepte une demande d'un client, la transmet à un serveur qui peut la satisfaire et renvoie la réponse du serveur au client. Alors que le déploiement d’un équilibreur de charge n’a de sens que lorsque vous disposez de plusieurs serveurs, il est souvent judicieux de déployer un proxy inverse même avec un seul serveur Web ou serveur d’applications. Vous pouvez considérer le proxy inverse comme le « visage public » d’un site Web. Son adresse est celle annoncée pour le site Web et elle se situe à la périphérie du réseau du site pour accepter les demandes des navigateurs Web et des applications mobiles pour le contenu hébergé sur le site Web. Un proxy inverse fournit un niveau supplémentaire d'abstraction et de contrôle pour garantir la fluidité du trafic réseau entre les clients et les serveurs. Le proxy inverse fournit :
Un proxy inverse est utilisé pour fournir des services d'équilibrage de charge afin d'offrir des expériences Web plus fluides et, de plus en plus, pour renforcer la sécurité des applications Web à des points d'insertion stratégiques dans un réseau via des pare-feu d'applications Web, des pare-feu de diffusion d'applications et une inspection approfondie du contenu.
Associé à des déploiements cloud, un proxy inverse peut permettre des architectures de cloud bursting et d'applications fractionnées qui offrent les avantages économiques du cloud sans compromettre le contrôle ou la sécurité.
Un proxy inverse peut agir soit comme un simple service de transfert, soit participer activement à l'échange entre le client et le serveur. Lorsque le proxy traite le client et le serveur comme des entités distinctes en implémentant deux piles réseau, il est appelé proxy complet.
Un proxy complet crée une connexion client TCP ainsi qu'une connexion serveur TCP distincte avec un petit espace au milieu. Le client se connecte au proxy à une extrémité et le proxy établit une connexion distincte et indépendante avec le serveur. C'est bidirectionnel des deux côtés. Il n'y a jamais de mélange de connexions du côté client au côté serveur puisque les connexions sont indépendantes.
La fonction d’un proxy inverse peut être exécutée par un appareil, un logiciel ou un service en fonction de la complexité de l’environnement et des besoins de l’organisation.
Idéal pour les environnements cloud natifs, NGINX Plus est un proxy inverse basé sur un logiciel qui effectue l'équilibrage de charge, le routage de couche 7 et l'optimisation des performances Web, de manière similaire à un périphérique matériel. NGINX Plus contribue également à améliorer les performances, la fiabilité, la sécurité et l'évolutivité du site Web. NGINX Plus est beaucoup moins cher que les solutions matérielles dotées de capacités similaires. Les fonctionnalités complètes d'équilibrage de charge et de proxy inverse de NGINX Plus vous permettent de créer un réseau de distribution d'applications hautement optimisé. NGINX Plus peut être déployé dans le cloud public ainsi que dans des centres de données privés à un coût inférieur à celui d'un proxy complet.
Pour les environnements plus complexes et hybrides, le système F5 BIG-IP est un proxy complet qui peut être déployé en tant que serveur proxy inverse complet capable d'intercepter, d'inspecter et d'interagir avec les requêtes et les réponses. Cela inclut les fonctions de base d'équilibrage de charge et d'optimisation des performances Web, ainsi que des services de gestion du trafic plus avancés tels que la sécurité de la couche applicative , l'accélération Web , le routage des pages et l'accès à distance sécurisé .