Reverse Proxy Secondaire & Synchronisation
1. Prérequis
- Deux serveurs Reverse Proxy configurés (Nginx installé).
- Accès root ou sudo sur les deux serveurs.
2. Installation des outils
Sur les deux serveurs :
Info
sudo apt install rsync lsyncd
3. Configuration de lsyncd (Serveur Primaire)
lsyncd va surveiller les modifications de configuration sur le primaire et les répliquer sur le secondaire.
Créer le fichier de configuration :
Info
sudo nano /etc/lsyncd/lsyncd.conf.lua
settings {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status",
statusInterval = 20,
inotifyMode = "CloseWrite"
}
sync {
default.rsync,
source = "/etc/nginx/",
target = "etudiant@192.168.45.8:/etc/nginx/",
rsync = {
archive = true,
compress = false,
verbose = true,
rsh = "/usr/bin/ssh -o StrictHostKeyChecking=no",
_extra = "--rsync-path='sudo rsync'",
_extra = "--delete"
},
delay = 2
}
Démarrage
Info
sudo systemctl restart lsyncd
sudo systemctl enable lsyncd
4. Test de synchronisation
Sur le Primaire :
sudo touch /etc/nginx/test-sync.txt
Sur le Secondaire :
ls -l /etc/nginx/
5. Gestion HTTPS et Certificats
Important
La synchronisation lsyncd ne gère PAS automatiquement les certificats SSL situés dans /etc/letsencrypt. Il faut les copier manuellement.
Synchronisation manuelle des certificats
Depuis le Primaire vers le Secondaire :
Info
sudo scp -r /etc/letsencrypt/live/orleans.sportludique.fr root@172.28.62.10:/etc/letsencrypt/live/
sudo scp -r /etc/letsencrypt/archive/orleans.sportludique.fr root@172.28.62.10:/etc/letsencrypt/archive/
Configuration Nginx HTTPS
Exemple de bloc server :
server {
listen 80;
server_name orleans.sportludique.fr;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name orleans.sportludique.fr;
ssl_certificate /etc/letsencrypt/live/orleans.sportludique.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/orleans.sportludique.fr/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
# ... autres headers
}
}
Recharger Nginx après copie des certificats :
Info
sudo nginx -t
sudo systemctl reload nginx