Configurez Nginx en proxy inverse pour votre application, avec HTTPS automatique grâce à un certificat Let's Encrypt gratuit.

Ce guide suppose que Nginx est déjà installé (voir le guide d'installation de Nginx) et qu'un domaine pointe vers l'IP de votre VPS.

  1. Installez Certbot et le plugin Nginx :
    apt update && apt install certbot python3-certbot-nginx
  2. Créez une configuration de site dans /etc/nginx/sites-available/myapp. Remplacez yourdomain.com et le port du proxy par vos valeurs :
    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            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;
        }
    }
  3. Activez le site et rechargez Nginx :
    ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
    nginx -t && systemctl reload nginx
  4. Ouvrez les ports 80 et 443 dans le pare-feu du portail et en local :
    ufw allow "Nginx Full"
  5. Obtenez un certificat SSL gratuit :
    certbot --nginx -d yourdomain.com
    Certbot réécrit automatiquement votre configuration Nginx pour gérer HTTPS et les redirections de HTTP vers HTTPS.
  6. Vérifiez que le renouvellement automatique est actif :
    systemctl status certbot.timer
    Certbot renouvelle les certificats automatiquement avant leur expiration, aucune action manuelle n'est requise.

Plusieurs domaines : répétez les étapes 2 à 5 pour chaque site supplémentaire, avec un fichier de configuration distinct par domaine. Chacun obtient son propre certificat.

Ce guide vous a-t-il été utile ?

Merci pour votre retour !