Luku 5 · 5.3
Sovellus käänteisen välityspalvelimen takana
Monella sovelluksella on oma pieni verkkopalvelin jossakin portissa, kuten 3001 tai 5678. Sitä ei avata internetiin. Verkkopalvelimesi vastaanottaa liikenteen portissa 443 https-yhteydellä ja välittää sen sovellukselle: tätä kutsutaan nimellä käänteinen välityspalvelin (reverse proxy).
Caddyn avulla
Jos sovellus kuuntelee itse palvelimella porttia 3001:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy välittää oikeat otsakkeet (kuten X-Forwarded-For ja X-Forwarded-Proto) ja websocketit automaattisesti. Jos sovellus toimii Dockerissa Caddyn rinnalla, käytä kontin nimeä, kuten artikkelissa Työhakemisto: compose.yaml, .env ja Caddy.
nginxin avulla
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";
}
}
Suorita sen jälkeen sudo nginx -t, sudo systemctl reload nginx ja sudo certbot --nginx -d status.example.com.
Hyvä tietää
- Anna sovelluksen kuunnella vain osoitetta
127.0.0.1, ei kaikkia osoitteita. Silloin kukaan ei pääse välityspalvelimesi ohi. - Monet sovellukset haluavat tietää, missä osoitteessa ne ovat saatavilla, esimerkiksi asetuksella
DOMAINtaiN8N_HOST. Kirjoita siihen https-osoite. - Hallintanäkymä, joka ei ole tarkoitettu kaikille, kannattaa suojata erikseen: salasanalla itse sovelluksessa, kaksivaiheisella tunnistautumisella tai niin, että se on käytettävissä vain SSH-tunnelin kautta (katso SSH-config: kirjaudu sisään lyhyellä nimellä).
- Lisää suojausotsakkeita, kuten HSTS, asetetaan Caddyssa komennolla
headertai nginxissä komennollaadd_header. Ota HSTS käyttöön vasta, kun https toimii kunnolla kaikkialla.
