Capitolul 5 · 5.3
O aplicație în spatele unui reverse proxy
Multe aplicații au propriul server web mic, care rulează pe un port, cum ar fi 3001 sau 5678. Pe acesta nu îl deschideți către internet. Serverul dvs. web primește traficul pe portul 443 prin https și îl transmite aplicației: un reverse proxy.
Cu Caddy
Dacă aplicația ascultă pe serverul propriu-zis, pe portul 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy transmite automat anteturile corecte (cum ar fi X-Forwarded-For și X-Forwarded-Proto) și websocket-urile. Dacă aplicația rulează în Docker alături de Caddy, folosiți numele containerului, ca în Directorul dumneavoastră de lucru cu compose.yaml, .env și Caddy.
Cu 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";
}
}
Apoi rulați sudo nginx -t, sudo systemctl reload nginx și sudo certbot --nginx -d status.example.com.
Bine de știut
- Lăsați aplicația să asculte doar pe
127.0.0.1, nu pe toate adresele. Astfel, nimeni nu vă poate ocoli proxy-ul. - Multe aplicații vor să știe la ce adresă sunt accesibile, de exemplu printr-o setare precum
DOMAINsauN8N_HOST. Completați acolo adresa https. - Un ecran de administrare care nu este destinat tuturor îl protejați suplimentar: cu o parolă în aplicația însăși, cu autentificare în doi pași sau doar printr-un tunel SSH (consultați Un fișier de configurare SSH: autentificare cu un nume scurt).
- Anteturile suplimentare de securitate, cum ar fi HSTS, le setați cu
headerîn Caddy sau cuadd_headerîn nginx. Activați HSTS doar după ce https funcționează corect peste tot.
