La plupart des applications auto-hébergées écoutent sur un port local comme 127.0.0.1:3000 et parlent en HTTP simple. Un reverse proxy se place devant sur les ports 80/443, termine le HTTPS avec un vrai certificat et transmet le trafic à ce port local — vous donnant un https://app.yourdomain.com propre et vous permettant de faire tourner plusieurs applications derrière une seule IP. Voici les deux voies courantes.
Prérequis
- Un domaine avec un enregistrement A pointant vers l'IP de votre serveur (attendez la propagation DNS).
- Les ports 80 et 443 ouverts — voir comment configurer un pare-feu UFW.
- Votre application tourne en local, par exemple sur
127.0.0.1:3000.
Option A — Caddy (HTTPS automatique, une ligne)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
C'est tout — Caddy obtient un certificat Let's Encrypt pour le domaine et le renouvelle automatiquement.
Option B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Créez /etc/nginx/sites-available/app :
server {
listen 80;
server_name app.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;
}
}
Activez-le et ajoutez le HTTPS :
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Certbot modifie la config pour servir le HTTPS et met en place le renouvellement automatique.
Mises en garde honnêtes
- Le DNS et les ports sont les échecs habituels. L'enregistrement A doit pointer ici et être propagé, et 80/443 doivent être joignables, sinon l'émission du certificat échoue. Les deux outils réessaient dès que c'est corrigé.
- N'exposez que ce que vous voulez. Gardez l'application liée à
127.0.0.1pour qu'elle ne soit joignable que par le proxy, pas en direct. - Le HTTPS a besoin d'un domaine, pas d'une IP nue — Let's Encrypt émet pour des noms.
Étapes suivantes
Le reverse proxy, c'est justement ce qui permet à un seul serveur de servir beaucoup de choses — voir héberger plusieurs services derrière une seule IP. Vous faites tourner l'application dans un conteneur ? Commencez par comment installer Docker. Pour que l'application elle-même survive aux redémarrages et aux plantages, voir comment créer un service systemd.
Commentaires
Pas encore de commentaires. Soyez le premier.