Kapitel 5 · 5.3
En app bag en reverse proxy
Mange apps har deres egen lille webserver på en port, f.eks. 3001 eller 5678. Den åbner du ikke mod internettet. Din webserver modtager trafikken på 443 med https og sender den videre til appen: en reverse proxy.
Med Caddy
Hvis appen lytter på port 3001 på selve serveren:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy sender automatisk de rigtige headere (f.eks. X-Forwarded-For og X-Forwarded-Proto) og websockets videre. Kører appen i Docker ved siden af Caddy, bruger du navnet på containeren, som i Din arbejdsmappe med compose.yaml, .env og Caddy.
Med nginx
server {
listen 80;
listen [::]:80;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Derefter sudo nginx -t, sudo systemctl reload nginx og sudo certbot --nginx -d status.example.com.
Godt at vide
- Lad kun appen lytte på
127.0.0.1, ikke på alle adresser. Så kan ingen gå uden om din proxy. - Mange apps vil vide, hvilken adresse de kan nås på, f.eks. med en indstilling som
DOMAINellerN8N_HOST. Angiv https-adressen der. - Et administrationspanel, som ikke er for alle, beskytter du ekstra: med en adgangskode i selve appen, med totrinsbekræftelse eller kun via en SSH-tunnel (se En SSH-config: log ind med et kort navn).
- Ekstra sikkerhedsheadere som HSTS sætter du med
headeri Caddy elleradd_headeri nginx. Slå først HSTS til, når https virker overalt.
