EQVPS

Jak skonfigurować odwrotne proxy nginx z HTTPS

Postaw czystą domenę i automatyczny HTTPS przed dowolną aplikacją nasłuchującą na porcie lokalnym. Dwie drogi: nginx z Certbot albo Caddy dla automatycznego TLS w jednej linii. Krok po kroku, z konfiguracją gotową do skopiowania.

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

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

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.

FAQ

Czym jest odwrotne proxy i po co mi ono?

Twoja aplikacja zwykle nasłuchuje na porcie lokalnym w rodzaju 127.0.0.1:3000. Odwrotne proxy stoi z przodu na portach 80/443, kończy HTTPS i przekazuje żądania na ten port lokalny. Daje ci czystą domenę, ważny certyfikat TLS i możliwość utrzymywania kilku aplikacji za jednym IP — a aplikacja nie musi robić nic z tego sama.

nginx czy Caddy — co wybrać?

Caddy to najszybsza droga: sam pobiera i odnawia certyfikaty Let's Encrypt, a działające proxy HTTPS to jedna linia konfiguracji. nginx jest bardziej znany i elastyczny, ale do TLS dokładasz Certbot. Chcesz HTTPS przy minimum zachodu — bierz Caddy; znasz już nginx albo potrzebujesz jego funkcji — bierz nginx.

Czy potrzebuję domeny?

Do zaufanego certyfikatu HTTPS — tak: Let's Encrypt wydaje certyfikaty dla nazw domen, nie dla gołych IP. Skieruj rekord A na IP swojego serwera, poczekaj na propagację DNS, a proxy zdoła uzyskać certyfikat dla tej nazwy.

Które porty muszą być otwarte?

80 i 443 przychodzące. Port 80 służy do początkowej weryfikacji certyfikatu i przekierowania na HTTPS; 443 obsługuje ruch szyfrowany. Otwórz oba w zaporze (zobacz przewodnik po UFW) i upewnij się, że nic innego już ich nie zajmuje.

Dlaczego wydanie certyfikatu się nie udaje?

Prawie zawsze DNS albo porty. Rekord A domeny musi wskazywać na ten serwer i być rozpropagowany, a porty 80/443 osiągalne (otwarte w zaporze, niezablokowane wyżej). Napraw te dwie rzeczy i wydanie się powiedzie; Caddy i Certbot oba ponawiają próby.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.