Poglavje 5 · 5.3
Aplikacija za obratnim posrednikom (reverse proxy)
Številne aplikacije imajo svoj majhen spletni strežnik na določenih vratih, na primer 3001 ali 5678. Teh vrat ne odprete proti internetu. Vaš spletni strežnik sprejme promet na vratih 443 prek https in ga posreduje aplikaciji: to je obratni posrednik (reverse proxy).
S Caddy
Če aplikacija posluša na samem strežniku na vratih 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy samodejno posreduje ustrezne glave (kot sta X-Forwarded-For in X-Forwarded-Proto) in websockete. Če aplikacija teče v Dockerju poleg Caddyja, uporabite ime vsebnika, kot v Vaša delovna mapa s compose.yaml, .env in Caddy.
Z 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";
}
}
Nato zaženite sudo nginx -t, sudo systemctl reload nginx in sudo certbot --nginx -d status.example.com.
Dobro je vedeti
- Aplikacija naj posluša samo na
127.0.0.1, ne na vseh naslovih. Tako nihče ne more mimo Vašega posrednika. - Številne aplikacije želijo vedeti, na katerem naslovu so dosegljive, na primer z nastavitvijo, kot je
DOMAINaliN8N_HOST. Tam vnesite naslov https. - Skrbniški vmesnik, ki ni namenjen vsem, dodatno zaščitite: z geslom v sami aplikaciji, z dvostopenjskim preverjanjem ali samo prek tunela SSH (glejte Konfiguracija SSH: prijava s kratkim imenom).
- Dodatne varnostne glave, kot je HSTS, nastavite z
headerv Caddy aliadd_headerv nginx. HSTS vklopite šele, ko https povsod deluje pravilno.
