Mise en Place d’un Reverse Proxy avec VirtualBox
Objectif
Le but de ce TP est de mettre en place un reverse proxy utilisant Nginx sur une machine virtuelle, et de configurer une redirection vers plusieurs services web hébergés sur d’autres machines virtuelles.
Matériel Nécessaire
- VirtualBox installé sur votre machine hôte
- ISO de Debian ou Ubuntu Server (disponible gratuitement en ligne)
- Connexion internet
Prérequis
- Connaissances de base en réseau et en administration système Linux
- Connaissances de base en virtualisation avec VirtualBox
Étape 1 : Création des Machines Virtuelles
- Téléchargez l’ISO de Debian/Ubuntu Server :
- Créez trois machines virtuelles (VM) dans VirtualBox :
- Une VM pour le reverse proxy (nommée
reverse-proxy
) - Deux VM pour les services web (nommées
web-server1
etweb-server2
)
- Une VM pour le reverse proxy (nommée
- Configurez les machines virtuelles :
- Attribuez au moins 1 Go de RAM et 10 Go de disque pour chaque VM.
- Montez l’ISO de Debian/Ubuntu Server comme lecteur de CD/DVD.
- Installez le système d’exploitation :
- Suivez les instructions d’installation de l’OS.
- Configurez un utilisateur avec les droits sudo.
- Configurez une adresse IP statique pour chaque VM.
Étape 2 : Configuration des Serveurs Web
- Connectez-vous à
web-server1
et installez Apache :bashsudo apt update
sudo apt install apache2 -y
- Modifiez la page d’accueil pour identifier
web-server1
:bashecho "Web Server 1" | sudo tee /var/www/html/index.html
- Répétez les mêmes étapes sur
web-server2
, en modifiant la page d’accueil pour identifierweb-server2
:bashsudo apt update
sudo apt install apache2 -y
echo "Web Server 2" | sudo tee /var/www/html/index.html
Étape 3 : Configuration du Reverse Proxy
- Connectez-vous à la VM
reverse-proxy
et installez Nginx :bashsudo apt update
sudo apt install nginx -y
- Configurez Nginx comme reverse proxy :
- Ouvrez le fichier de configuration par défaut de Nginx :
bash
sudo nano /etc/nginx/sites-available/default
- Remplacez le contenu par le suivant :
nginx
server {
listen 80;location / {
proxy_pass http://web-server1_ip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}location /server2 {
proxy_pass http://web-server2_ip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- Remplacez
web-server1_ip
etweb-server2_ip
par les adresses IP de vos serveurs web respectifs.
- Ouvrez le fichier de configuration par défaut de Nginx :
- Redémarrez Nginx pour appliquer les changements :
bash
sudo systemctl restart nginx
Étape 4 : Test de la Configuration
- Depuis votre machine hôte, ouvrez un navigateur web et accédez à l’adresse IP de
reverse-proxy
.- Vous devriez voir la page de
web-server1
.
- Vous devriez voir la page de
- Accédez à l’URL
http://reverse-proxy_ip/server2
.- Vous devriez voir la page de
web-server2
.
- Vous devriez voir la page de
Étape 5 : Validation
- Vérifiez que les configurations de vos machines virtuelles sont correctes.
- Utilisez la commande
ping
pour tester la connectivité entre les VMs.
- Utilisez la commande
- Vérifiez les fichiers de log de Nginx pour tout problème potentiel :
bash
sudo tail -f /var/log/nginx/error.log