Kapittel 5 · 5.3
En app bak en omvendt proxy
Mange apper har sin egen lille webserver på en port, for eksempel 3001 eller 5678. Den åpner du ikke mot internett. Webserveren din tar imot trafikken på 443 med https og sender den videre til appen: en omvendt proxy (reverse proxy).
Med Caddy
Lytter appen på selve serveren på port 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy sender de riktige headerne (som X-Forwarded-For og X-Forwarded-Proto) og websockets videre av seg selv. Kjører appen i Docker ved siden av Caddy, bruker du navnet på containeren, som i Arbeidsmappen din 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";
}
}
Deretter sudo nginx -t, sudo systemctl reload nginx og sudo certbot --nginx -d status.example.com.
Greit å vite
- La appen bare lytte på
127.0.0.1, ikke på alle adresser. Da kan ingen gå utenom proxyen din. - Mange apper vil vite hvilken adresse de er tilgjengelige på, for eksempel med en innstilling som
DOMAINellerN8N_HOST. Fyll inn https-adressen der. - Et administrasjonspanel som ikke er for alle, sikrer du ekstra: med et passord i selve appen, med totrinnsbekreftelse eller bare via en SSH-tunnel (se En SSH-config: logg inn med et kort navn).
- Ekstra sikkerhetsheadere som HSTS setter du med
headeri Caddy elleradd_headeri nginx. Slå på HSTS først når https fungerer som det skal overalt.
