Poglavlje 5 · 5.3
Aplikacija iza obrnutog proxyja
Mnoge aplikacije imaju vlastiti mali web poslužitelj na nekom portu, primjerice 3001 ili 5678. Taj port ne otvarate prema internetu. Vaš web poslužitelj prima promet na portu 443 putem HTTPS-a i prosljeđuje ga aplikaciji: to je obrnuti proxy (reverse proxy).
S Caddyjem
Ako aplikacija na samom poslužitelju sluša na portu 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy automatski prosljeđuje ispravna zaglavlja (kao što su X-Forwarded-For i X-Forwarded-Proto) i websocketove. Ako aplikacija radi u Dockeru uz Caddy, koristite naziv spremnika, kao u članku Vaša radna mapa s compose.yaml, .env i Caddyjem.
S nginxom
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";
}
}
Zatim pokrenite sudo nginx -t, sudo systemctl reload nginx i sudo certbot --nginx -d status.example.com.
Dobro je znati
- Neka aplikacija sluša samo na
127.0.0.1, a ne na svim adresama. Tako nitko ne može zaobići Vaš proxy. - Mnoge aplikacije trebaju znati na kojoj su adresi dostupne, primjerice putem postavke kao što je
DOMAINiliN8N_HOST. Ondje upišite HTTPS adresu. - Administratorsko sučelje koje nije namijenjeno svima dodatno zaštitite: lozinkom u samoj aplikaciji, dvofaktorskom autentifikacijom ili pristupom samo putem SSH tunela (pogledajte SSH konfiguracija: prijava kratkim nazivom).
- Dodatna sigurnosna zaglavlja kao što je HSTS postavljate s
headeru Caddyju iliadd_headeru nginxu. HSTS uključite tek kada HTTPS posvuda ispravno radi.
