Skip to content

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 :

Terminal window
apk add nginx

Une fois installé, activez et démarrez le service :

Terminal window
rc-update add nginx default
rc-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 :

Terminal window
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 :

Terminal window
nginx -t

Si tout est en ordre, redémarrez NGINX :

Terminal window
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 :

Terminal window
apk add certbot certbot-nginx

Générez et installez le certificat SSL avec :

Terminal window
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 :

Terminal window
crontab -e

Ajoutez la ligne suivante :

Terminal window
0 3 * * * certbot renew --quiet

Cela vérifiera et renouvellera le certificat si nécessaire chaque jour à 3h du matin.