5. fejezet · 5.3
Alkalmazás reverse proxy mögött
Sok alkalmazásnak saját kis webszervere van egy porton, például a 3001-es vagy az 5678-as porton. Ezt a portot nem nyitjuk meg az internet felé. A webszerver fogadja a forgalmat a 443-as porton https-en keresztül, és továbbítja az alkalmazásnak: ez a reverse proxy.
Caddy használatával
Ha az alkalmazás magán a szerveren a 3001-es porton figyel:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
A Caddy automatikusan továbbítja a megfelelő fejléceket (például X-Forwarded-For és X-Forwarded-Proto) és a websocketeket. Ha az alkalmazás Dockerben fut a Caddy mellett, akkor a konténer nevét használja, ahogyan a(z) Munkakönyvtár compose.yaml és .env fájllal, valamint Caddyvel című cikkben.
nginx használatával
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";
}
}
Ezután futtassa a következőket: sudo nginx -t, sudo systemctl reload nginx és sudo certbot --nginx -d status.example.com.
Jó tudni
- Az alkalmazás csak a(z)
127.0.0.1címen figyeljen, ne minden címen. Így senki sem tudja megkerülni a proxyt. - Sok alkalmazásnak tudnia kell, milyen címen érhető el, például egy
DOMAINvagyN8N_HOSTtípusú beállítással. Ide a https-címet adja meg. - Az olyan kezelőfelületet, amely nem mindenkinek szól, érdemes külön is védeni: jelszóval magában az alkalmazásban, kétlépcsős azonosítással, vagy úgy, hogy csak SSH-alagúton keresztül legyen elérhető (lásd: SSH-konfiguráció: bejelentkezés rövid névvel).
- A további biztonsági fejléceket, például a HSTS-t, a Caddyben a(z)
header, az nginxben a(z)add_headersegítségével állíthatja be. A HSTS-t csak akkor kapcsolja be, ha a https mindenhol megfelelően működik.
