5 skyrius · 5.3
Programėlė už atvirkštinio tarpinio serverio
Daugelis programėlių turi savo nedidelį žiniatinklio serverį, veikiantį tam tikrame prievade, pavyzdžiui, 3001 arba 5678. Šio prievado neatverkite internetui. Jūsų žiniatinklio serveris priima srautą 443 prievade per https ir perduoda jį programėlei: tai vadinama atvirkštiniu tarpiniu serveriu (angl. reverse proxy).
Su Caddy
Jei programėlė klausosi pačiame serveryje 3001 prievade:
status.example.com {
reverse_proxy 127.0.0.1:3001
}
Caddy tinkamas antraštes (pavyzdžiui, X-Forwarded-For ir X-Forwarded-Proto) ir websocket ryšius perduoda automatiškai. Jei programėlė veikia Docker šalia Caddy, naudokite konteinerio pavadinimą, kaip aprašyta Jūsų darbo aplankas su compose.yaml, .env ir Caddy.
Su 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";
}
}
Tada sudo nginx -t, sudo systemctl reload nginx ir sudo certbot --nginx -d status.example.com.
Naudinga žinoti
- Leiskite programėlei klausytis tik adresu
127.0.0.1, o ne visais adresais. Tada niekas negalės apeiti Jūsų tarpinio serverio. - Daugelis programėlių nori žinoti, kokiu adresu jos pasiekiamos, pavyzdžiui, per nustatymą
DOMAINarbaN8N_HOST. Ten įrašykite https adresą. - Administravimo sąsają, kuri skirta ne visiems, papildomai apsaugokite: slaptažodžiu pačioje programėlėje, dviejų veiksnių autentifikavimu arba leiskite prieigą tik per SSH tunelį (žr. SSH konfigūracija: prisijungimas trumpu pavadinimu).
- Papildomas saugumo antraštes, pavyzdžiui, HSTS, nustatykite su
headerCaddy arbaadd_headernginx. HSTS įjunkite tik tada, kai https visur veikia tinkamai.
