Większość aplikacji self-hosted nasłuchuje na porcie lokalnym w rodzaju 127.0.0.1:3000 i mówi zwykłym HTTP. Odwrotne proxy stoi z przodu na portach 80/443, kończy HTTPS prawdziwym certyfikatem i przekazuje ruch na ten port lokalny — dając czyste https://app.yourdomain.com i pozwalając trzymać kilka aplikacji za jednym IP. Oto obie popularne drogi.
Wymagania wstępne
- Domena z rekordem A wskazującym na IP twojego serwera (poczekaj na propagację DNS).
- Porty 80 i 443 otwarte — zobacz jak skonfigurować zaporę UFW.
- Aplikacja działa lokalnie, np. na
127.0.0.1:3000.
Wariant A — Caddy (automatyczny HTTPS, jedna linia)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
To wszystko — Caddy pobiera certyfikat Let's Encrypt dla domeny i odnawia go automatycznie.
Wariant B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Utwórz /etc/nginx/sites-available/app:
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
Włącz go i dodaj HTTPS:
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Certbot modyfikuje konfigurację, by obsługiwać HTTPS, i ustawia automatyczne odnawianie.
Szczere ostrzeżenia
- DNS i porty to typowe przyczyny awarii. Rekord A musi wskazywać tutaj i być rozpropagowany, a 80/443 osiągalne, inaczej wydanie certyfikatu się nie uda. Oba narzędzia ponawiają próbę, gdy tylko to naprawisz.
- Wystawiaj tylko to, co zamierzasz. Trzymaj aplikację przypiętą do
127.0.0.1, żeby była dostępna wyłącznie przez proxy, a nie bezpośrednio. - HTTPS potrzebuje domeny, nie gołego IP — Let's Encrypt wydaje dla nazw.
Kolejne kroki
Odwrotne proxy to właśnie to, co pozwala jednemu serwerowi obsługiwać wiele rzeczy — zobacz self-hosting kilku usług za jednym IP. Uruchamiasz aplikację w kontenerze? Zacznij od jak zainstalować Docker. Aby sama aplikacja przetrwała restarty i awarie, zobacz jak utworzyć usługę systemd.
Komentarze
Brak komentarzy. Bądź pierwszy.