Kapitola 5 · 5.3
Aplikace za reverzní proxy
Mnoho aplikací má vlastní malý webový server na nějakém portu, například 3001 nebo 5678. Ten neotevírejte do internetu. Váš webový server přijímá provoz na portu 443 přes https a předává ho aplikaci: jde o reverzní proxy.
S Caddy
Pokud aplikace naslouchá přímo na serveru na portu 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy správné hlavičky (například X-Forwarded-For a X-Forwarded-Proto) i websockety předává automaticky. Pokud aplikace běží v Dockeru vedle Caddy, použijte název kontejneru, jako v článku Váš pracovní adresář s compose.yaml, .env a Caddy.
S 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";
}
}
Poté spusťte sudo nginx -t, sudo systemctl reload nginx a sudo certbot --nginx -d status.example.com.
Dobré vědět
- Nechte aplikaci naslouchat pouze na
127.0.0.1, ne na všech adresách. Pak nikdo nemůže Vaši proxy obejít. - Mnoho aplikací potřebuje vědět, na jaké adrese jsou dostupné, například pomocí nastavení jako
DOMAINneboN8N_HOST. Zadejte tam adresu s https. - Administrační rozhraní, které není určeno všem, dodatečně zabezpečte: heslem přímo v aplikaci, dvoufázovým ověřením nebo přístupem pouze přes SSH tunel (viz Konfigurace SSH: přihlášení pod krátkým názvem).
- Další bezpečnostní hlavičky, jako je HSTS, nastavíte pomocí
headerv Caddy neboadd_headerv nginx. HSTS zapněte až ve chvíli, kdy https všude správně funguje.
