EQVPS

Sådan opsætter du en nginx-omvendt proxy med HTTPS

Sæt et rent domæne og automatisk HTTPS foran enhver app, der lytter på en lokal port. To veje: nginx med Certbot, eller Caddy til automatisk TLS på én linje. Trin for trin, med kopiklar konfiguration.

De fleste selvhostede apps lytter på en lokal port som 127.0.0.1:3000 og taler almindelig HTTP. En omvendt proxy står foran på port 80/443, afslutter HTTPS med et rigtigt certifikat og videresender trafik til den lokale port — den giver dig et rent https://app.yourdomain.com og lader dig køre flere apps bag én IP. Her er de to gængse veje.

Forudsætninger

Mulighed A — Caddy (automatisk HTTPS, én linje)

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 er det hele — Caddy henter et Let's Encrypt-certifikat til domænet og fornyer det automatisk.

Mulighed B — nginx + Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

Opret /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;
    }
}

Aktivér den og tilføj 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 redigerer konfigurationen til at servere HTTPS og opsætter automatisk fornyelse.

Ærlige advarsler

Næste skridt

Den omvendte proxy er netop det, der lader én server servere mange ting — se selvhost flere tjenester bag én IP. Kører du appen i en container? Start med sådan installerer du Docker. For at appen selv kan overleve genstarter og nedbrud, se sådan opretter du en systemd-tjeneste.

FAQ

Hvad er en omvendt proxy, og hvorfor har jeg brug for den?

Din app lytter som regel på en lokal port som 127.0.0.1:3000. Den omvendte proxy står foran på port 80/443, afslutter HTTPS og videresender forespørgsler til den lokale port. Den giver dig et rent domæne, et gyldigt TLS-certifikat og mulighed for at køre flere apps bag én IP — uden at appen selv skal klare noget af det.

nginx eller Caddy — hvad skal jeg vælge?

Caddy er den hurtigste vej: den henter og fornyer Let's Encrypt-certifikater automatisk, og en fungerende HTTPS-proxy er én linje konfiguration. nginx er mere kendt og mere fleksibel, men til TLS tilføjer du Certbot. Vil du have HTTPS med mindst muligt besvær, så brug Caddy; kender du allerede nginx eller vil have dens funktioner, så brug nginx.

Har jeg brug for et domæne?

Til et betroet HTTPS-certifikat, ja — Let's Encrypt udsteder certifikater til domænenavne, ikke til nøgne IP'er. Peg en A-post mod din servers IP, vent på DNS-udbredelse, og så kan proxyen hente et certifikat til det navn.

Hvilke porte skal være åbne?

80 og 443 indgående. Port 80 bruges til den første certifikatudfordring og omdirigeringen til HTTPS; 443 serverer den krypterede trafik. Åbn begge i din firewall (se UFW-guiden), og sørg for, at intet andet allerede optager dem.

Hvorfor mislykkes certifikatudstedelsen?

Næsten altid DNS eller porte. Domænets A-post skal pege på denne server og være udbredt, og port 80/443 være tilgængelige (åbne i firewallen, ikke blokeret opstrøms). Ret de to ting, og udstedelsen lykkes; både Caddy og Certbot prøver igen.

Kommentarer

Ingen kommentarer endnu. Vær den første.

Skriv en kommentar

Kommentarer modereres, før de vises.