De meeste zelf-gehoste apps luisteren op een lokale poort zoals 127.0.0.1:3000 en spreken gewoon HTTP. Een reverseproxy staat ervoor op poort 80/443, sluit HTTPS af met een echt certificaat en stuurt verkeer door naar die lokale poort — hij geeft je een net https://app.yourdomain.com en laat je meerdere apps achter één IP draaien. Hier zijn de twee gangbare wegen.
Vereisten
- Een domein met een A-record dat naar het IP van je server wijst (wacht op DNS-propagatie).
- Poort 80 en 443 open — zie hoe je een UFW-firewall instelt.
- Je app draait lokaal, bijvoorbeeld op
127.0.0.1:3000.
Optie A — Caddy (automatische HTTPS, één regel)
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
Dat is alles — Caddy haalt een Let's Encrypt-certificaat voor het domein en vernieuwt het automatisch.
Optie B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Maak /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;
}
}
Schakel het in en voeg HTTPS toe:
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 past de configuratie aan om HTTPS te serveren en stelt automatische vernieuwing in.
Eerlijke waarschuwingen
- DNS en poorten zijn de gebruikelijke oorzaken van falen. Het A-record moet hierheen wijzen en gepropageerd zijn, en 80/443 bereikbaar, anders mislukt de certificaatuitgifte. Beide tools proberen het opnieuw zodra dat is opgelost.
- Stel alleen bloot wat je bedoelt. Houd de app gebonden aan
127.0.0.1, zodat hij alleen via de proxy bereikbaar is, niet rechtstreeks. - HTTPS heeft een domein nodig, geen kaal IP — Let's Encrypt geeft uit voor namen.
Volgende stappen
De reverseproxy is precies wat één server veel dingen laat serveren — zie meerdere diensten achter één IP zelf hosten. Draai je de app in een container? Begin met hoe je Docker installeert. Om de app zelf herstarts en crashes te laten overleven, zie hoe je een systemd-service maakt.
Reacties
Nog geen reacties. Wees de eerste.