−25%

la planurile Windows anuale, până pe 31 oct. Vezi planurile

EQVPS
Începe

Cum configurezi un reverse proxy nginx cu HTTPS

Pune un domeniu curat și HTTPS automat în fața oricărei aplicații care rulează pe un port local. Două variante: nginx cu Certbot sau Caddy, cu TLS automat într-o singură linie. Pas cu pas, cu configurația gata de copiat.

Majoritatea aplicațiilor găzduite de tine ascultă pe un port local, ca 127.0.0.1:3000, și vorbesc HTTP simplu. Un reverse proxy stă în față, pe porturile 80/443, termină HTTPS cu un certificat real și trimite traficul la portul local — îți dă un https://app.yourdomain.com curat și te lasă să rulezi mai multe aplicații în spatele unui singur IP. Iată ambele variante obișnuite.

Cerințe

  • Un domeniu cu o înregistrare A care indică spre IP-ul serverului (așteaptă să se propage DNS-ul).
  • Porturile 80 și 443 deschise — vezi cum configurezi un firewall UFW.
  • Aplicația pornită local, de exemplu pe 127.0.0.1:3000.

Varianta A — Caddy (HTTPS automat, o linie)

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

Asta e tot — Caddy obține un certificat Let's Encrypt pentru domeniu și îl reînnoiește automat.

Varianta B — nginx + Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

Creează /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;
    }
}

Activează-l și adaugă 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 editează configurația ca să servească HTTPS și configurează reînnoirea automată.

Avertismente cinstite

  • DNS-ul și porturile sunt cauzele obișnuite ale eșecurilor. Înregistrarea A trebuie să indice aici și să se fi propagat, iar 80/443 trebuie să fie accesibile, altfel emiterea certificatului eșuează. Ambele unelte reîncearcă după ce repari asta.
  • Expune doar ce vrei să expui. Ține aplicația legată de 127.0.0.1, ca să fie accesibilă doar prin proxy, nu direct.
  • HTTPS are nevoie de un domeniu, nu de un IP simplu — Let's Encrypt emite pentru nume.

Pașii următori

Un reverse proxy e ce îi permite unei singure mașini să servească multe lucruri — vezi găzduirea mai multor servicii în spatele unui singur IP. Rulezi aplicația într-un container? Începe cu cum instalezi Docker. Ca aplicația să rămână pornită după reporniri și căderi, vezi cum creezi un serviciu systemd.

Cum îndrepți un domeniu spre VPS-ul tău (A, AAAA și www) →

Întrebări frecvente

Ce e un reverse proxy și de ce am nevoie de unul?

Aplicația ta ascultă de obicei pe un port local, ca 127.0.0.1:3000. Un reverse proxy stă în față, pe porturile 80/443, termină HTTPS și trimite cererile mai departe la portul local. Îți dă un domeniu curat, un certificat TLS valid și posibilitatea de a rula mai multe aplicații în spatele unui singur IP — nimic din toate astea nu trebuie făcut de aplicația ta.

nginx sau Caddy — pe care să-l aleg?

Caddy e drumul cel mai rapid: obține și reînnoiește automat certificatele Let's Encrypt, iar un proxy HTTPS funcțional înseamnă o singură linie de configurație. nginx e mai cunoscut și mai flexibil, dar adaugi Certbot pentru TLS. Dacă vrei doar HTTPS cu cât mai puțină bătaie de cap, folosește Caddy; dacă știi deja nginx sau ai nevoie de funcțiile lui, folosește nginx.

Am nevoie de un domeniu?

Pentru un certificat HTTPS de încredere, da — Let's Encrypt emite certificate pentru nume de domeniu, nu pentru IP-uri simple. Îndreaptă o înregistrare A spre IP-ul serverului, așteaptă să se propage DNS-ul, apoi proxy-ul poate obține un certificat pentru acel nume.

Ce porturi trebuie deschise?

80 și 443, pentru intrare. Portul 80 e folosit pentru verificarea inițială a certificatului și pentru redirecționarea spre HTTPS; 443 servește traficul criptat. Deschide-le pe amândouă în firewall (vezi ghidul UFW) și asigură-te că nimic altceva nu le folosește deja.

De ce eșuează emiterea certificatului?

Aproape întotdeauna din cauza DNS-ului sau a porturilor. Înregistrarea A a domeniului trebuie să indice spre acest server și să se fi propagat, iar porturile 80/443 trebuie să fie accesibile (deschise în firewall, neblocate mai sus). Repară-le pe astea două și emiterea reușește; atât Caddy, cât și Certbot reîncearcă.

Comentarii

Încă nu există comentarii. Fii primul.

Lasă un comentariu

Comentariile sunt moderate înainte să apară.