De flesta självhostade appar lyssnar på en lokal port som 127.0.0.1:3000 och pratar vanlig HTTP. En omvänd proxy står framför på port 80/443, avslutar HTTPS med ett riktigt certifikat och skickar vidare trafik till den lokala porten — den ger dig ett rent https://app.yourdomain.com och låter dig köra flera appar bakom en enda IP. Här är de två vanliga vägarna.
Förutsättningar
- En domän med en A-post som pekar mot din servers IP (vänta på DNS-spridning).
- Portarna 80 och 443 öppna — se hur du sätter upp en UFW-brandvägg.
- Din app körs lokalt, till exempel på
127.0.0.1:3000.
Alternativ A — Caddy (automatisk HTTPS, en rad)
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
Det är allt — Caddy hämtar ett Let's Encrypt-certifikat för domänen och förnyar det automatiskt.
Alternativ B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Skapa /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;
}
}
Aktivera den och lägg till 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 redigerar konfigurationen för att servera HTTPS och sätter upp automatisk förnyelse.
Ärliga varningar
- DNS och portar är de vanliga felen. A-posten måste peka hit och vara spridd, och 80/443 vara nåbara, annars misslyckas certifikatutfärdandet. Båda verktygen försöker igen så snart det är åtgärdat.
- Exponera bara det du avser. Håll appen bunden till
127.0.0.1så att den bara går att nå via proxyn, inte direkt. - HTTPS behöver en domän, inte en naken IP — Let's Encrypt utfärdar för namn.
Nästa steg
Den omvända proxyn är precis det som låter en enda server servera många saker — se självhosta flera tjänster bakom en enda IP. Kör du appen i en container? Börja med hur du installerar Docker. För att appen själv ska överleva omstarter och krascher, se hur du skapar en systemd-tjänst.
Kommentarer
Inga kommentarer än. Bli först.