Configurer NGINX comme un reverse-proxy (Alpine Linux)
Dans cet article, nous allons voir comment configurer NGINX comme un reverse-proxy sur Alpine Linux pour rediriger le trafic vers plusieurs sites.
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Une instance Alpine Linux installée
- Un accès root ou un utilisateur avec les privilèges sudo
- NGINX installé
Installation de NGINX
Alpine Linux utilise apk comme gestionnaire de paquets. Installez NGINX avec :
apk add nginx
Une fois installé, activez et démarrez le service :
rc-update add nginx defaultrc-service nginx start
Configuration de NGINX comme reverse-proxy
L’objectif est de configurer NGINX pour rediriger le trafic vers plusieurs applications ou serveurs web.
Édition du fichier de configuration
Le fichier de configuration principal de NGINX se trouve dans /etc/nginx/nginx.conf. Vous pouvez également définir des configurations spécifiques dans /etc/nginx/http.d/.
Utilisation des fichiers .conf
dans http.d
Au lieu de modifier le fichier principal, il est recommandé d’ajouter des fichiers de configuration individuels dans /etc/nginx/http.d/. Cela facilite la gestion et la modularité.
Créez un nouveau fichier de configuration :
nano /etc/nginx/http.d/reverse-proxy.conf
Ajoutez le contenu suivant :
server { listen 80;
server_name example.com;
location /app1/ { proxy_pass http://127.0.0.1:8081/; 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 /app2/ { proxy_pass http://127.0.0.1:8082/; 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; }}
Dans cet exemple :
- Les requêtes vers
http://example.com/app1/
seront redirigées vers un serveur local sur le port 8081. - Les requêtes vers
http://example.com/app2/
seront redirigées vers un serveur local sur le port 8082.
Vérification et redémarrage de NGINX
Vérifiez que la configuration est correcte :
nginx -t
Si tout est en ordre, redémarrez NGINX :
rc-service nginx restart
Installation d’un certificat SSL avec Certbot
Pour sécuriser votre serveur avec un certificat SSL de Let’s Encrypt, installez Certbot :
apk add certbot certbot-nginx
Générez et installez le certificat SSL avec :
certbot --nginx -d example.com -d www.example.com
Certbot configurera automatiquement votre fichier NGINX pour rediriger le trafic HTTP vers HTTPS.
Renouvellement automatique
Ajoutez une tâche cron pour renouveler automatiquement le certificat :
crontab -e
Ajoutez la ligne suivante :
0 3 * * * certbot renew --quiet
Cela vérifiera et renouvellera le certificat si nécessaire chaque jour à 3h du matin.