Reverse proxy
Qu’est-ce qu’un Reverse Proxy ?
Un reverse proxy est un proxy placé devant un ou plusieurs serveurs backend pour gérer les requêtes des clients.
Contrairement au proxy classique, qui protège les clients, le reverse proxy protège et optimise l'accès aux serveurs.
Fonctionnement :
Un client envoie une requête au reverse proxy.
Le reverse proxy décide vers quel serveur backend envoyer la requête.
Le backend répond au reverse proxy, qui renvoie la réponse au client.
Cas d'utilisation courants :
Répartition de charge (Load Balancing) : Distribue le trafic entre plusieurs serveurs.
Sécurité : Cache l'architecture du serveur et filtre les requêtes malveillantes.
Cache et optimisation : Réduit la charge sur les serveurs backend.
SSL Termination : Gère le chiffrement HTTPS avant de transmettre en HTTP aux serveurs backend.
Installation et Configuration de Nginx comme Reverse Proxy
Mise à jour du système
Avant d’installer quoi que ce soit, mets à jour ta VM :
Installation de Nginx
Vérifie si Nginx fonctionne :
Active le service au démarrage :
Configuration du Reverse Proxy
Tu vas configurer Nginx pour rediriger les requêtes vers un serveur backend.
Création du fichier de configuration :
sudo nano /etc/nginx/sites-available/reverse-proxy
Ajoute cette configuration :
Activation de la configuration
Vérifie la configuration :
Test de Performance du Serveur
Après l’installation, il faut évaluer la performance.
Installation de Apache Benchmark (ab)
(ab) est un outil simple et rapide pour effectuer des tests de charge sur un serveur web. Il permet de simuler un grand
nombre de requêtes simultanées et de mesurer les performances.
Test avec ab
Explication :
-n 1000 : 1000 requêtes envoyées
-c 100 : 100 connexions simultanées
Après l'exécution de cette commande, vous obtiendrez des informations telles que :
Le temps total pour traiter les requêtes.
Le nombre de requêtes traitées par seconde.
Le temps moyen de réponse pour chaque requête.
Le taux de réussite des requêtes.
Installation de wrk (test plus avancé)
(Wrk) est un outil de test de charge plus performant que ab et permet de générer un grand nombre de requêtes par
seconde.
Explication des paramètres :
-t4 : Nombre de threads à utiliser.
-c100 : Nombre de connexions simultanées.
-d30s : Durée du test (30 secondes).
wrk offre des statistiques plus détaillées, comme le taux de requêtes par seconde, la latence, et d'autres métriques.
Surveillance des ressources système
Pour surveiller la consommation CPU/RAM pendant le test :
Conclusion
Les tests ont révélé que Nginx est capable de gérer efficacement une charge modérée avec des
performances stables. Cependant, sous une charge lourde, il y a des signes de saturation, ce qui peut
être amélioré avec des ajustements de configuration, tels que l'augmentation des workers et
l'optimisation des mécanismes de mise en cache. Ces résultats offrent une base solide pour ajuster
l'infrastructure et garantir une scalabilité optimale pour un usage à grande échelle.