Sari la conținut
Cum să configurezi un reverse proxy cu Nginx

Cum să configurezi un reverse proxy cu Nginx

Ce este un reverse proxy și la ce folosește. Cum să configurezi un reverse proxy cu Nginx.

Un reverse proxy este un server intermediar care se așază între clienții (browserele) și serverele backend. Când un utilizator accesează site-ul tău, cererea ajunge mai întâi la reverse proxy, care o redirecționează către serverul potrivit, primește răspunsul și îl returnează clientului.

Cum să configurezi un reverse proxy cu Nginx

Această arhitectură aduce multiple beneficii: echilibrarea încărcăturii, caching, terminarea SSL, securitate sporită și posibilitatea de a rula mai multe aplicații pe un singur server VPS cu o singură adresă IP.

De ce Nginx este alegerea ideală pentru reverse proxy

Nginx a fost proiectat de la zero pentru a gestiona eficient mii de conexiuni simultane, folosind o arhitectură asincronă bazată pe evenimente. Comparativ cu Apache folosit ca reverse proxy, Nginx consumă semnificativ mai puțină memorie și procesează cererile mai rapid.

Caracteristicile care fac Nginx ideal pentru acest rol:

  • Performanță ridicată – gestionează zeci de mii de conexiuni simultane cu un consum minim de resurse
  • Configurare simplă și flexibilă – sintaxa fișierelor de configurare este intuitivă și ușor de întreținut
  • Caching integrat – poate stoca în cache răspunsurile backend-ului pentru a reduce încărcarea
  • Suport WebSocket – proxy transparent pentru conexiuni WebSocket
  • Echilibrarea încărcăturii – distribuie traficul între mai multe servere backend

Instalarea și configurarea de bază a Nginx

Instalarea pe Ubuntu/Debian

Instalează Nginx din repository-ul oficial:

  • sudo apt update && sudo apt install nginx
  • Verifică funcționarea cu sudo systemctl status nginx
  • Accesează IP-ul serverului în browser – ar trebui să vezi pagina implicită Nginx

Structura fișierelor de configurare

Nginx organizează configurațiile astfel:

  • /etc/nginx/nginx.conf – configurarea principală globală
  • /etc/nginx/sites-available/ – fișierele de configurare pentru fiecare site
  • /etc/nginx/sites-enabled/ – link-uri simbolice către site-urile active
  • /etc/nginx/conf.d/ – fișiere de configurare suplimentare incluse automat

Configurarea reverse proxy pentru o aplicație web

Scenariul de bază – o singură aplicație

Să presupunem că ai o aplicație Node.js care rulează pe portul 3000. Configurația Nginx pentru a o expune prin portul 80/443:

Creează fișierul /etc/nginx/sites-available/aplicatia-mea cu directivele:

  • server_name exemplu.ro www.exemplu.ro; – domeniile pentru care se aplică
  • location / { proxy_pass http://127.0.0.1:3000; } – redirecționează cererile către aplicație
  • Header-ele proxy esențiale: proxy_set_header Host $host; și proxy_set_header X-Real-IP $remote_addr;
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; – transmite IP-ul real al clientului
  • proxy_set_header X-Forwarded-Proto $scheme; – transmite protocolul original (http/https)

Mai multe aplicații pe același server

Un reverse proxy excelează când ai mai multe aplicații pe același server, fiecare pe portul său:

  • WordPress pe portul 8080, accesibil la blog.exemplu.ro
  • Aplicație Node.js pe portul 3000, accesibilă la app.exemplu.ro
  • API Python Flask pe portul 5000, accesibil la api.exemplu.ro

Fiecare primește un bloc server separat în Nginx cu server_name și proxy_pass corespunzătoare.

Configurări avansate

Caching la nivel de reverse proxy

Nginx poate stoca în cache răspunsurile backend-ului, reducând dramatic încărcarea:

  • Definește zona de cache cu proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zona:10m max_size=1g inactive=60m;
  • Activează cache-ul în blocul location cu proxy_cache cache_zona;
  • Setează durata de valabilitate cu proxy_cache_valid 200 30m; pentru răspunsurile 200 OK
  • Adaugă header-ul add_header X-Cache-Status $upstream_cache_status; pentru depanare

Echilibrarea încărcăturii (load balancing)

Dacă aplicația ta rulează pe mai multe servere, Nginx poate distribui traficul:

  • Definește grupul de servere backend cu directiva upstream
  • Algoritmii disponibili: round-robin (implicit), least_conn (cel mai puțin ocupat), ip_hash (afinitate pe baza IP-ului)
  • Marchează servere ca backup cu directiva backup – vor fi folosite doar când serverele principale sunt indisponibile

Terminarea SSL cu Let’s Encrypt

Nginx gestionează certificatele SSL, iar comunicarea cu backend-ul rămâne pe HTTP necriptat (trafic intern). Instalează Certbot și generează certificate:

  • sudo apt install certbot python3-certbot-nginx
  • sudo certbot --nginx -d exemplu.ro -d www.exemplu.ro
  • Certbot modifică automat configurația Nginx pentru a activa HTTPS și redirecționarea de la HTTP

Testarea și depanarea configurației

Înainte de a aplica orice modificare, verifică sintaxa configurației:

  • sudo nginx -t – testează fișierele de configurare fără a reporni serviciul
  • sudo nginx -s reload – aplică modificările fără întreruperea conexiunilor existente
  • Verifică log-urile: /var/log/nginx/error.log pentru erori și /var/log/nginx/access.log pentru cereri

Probleme frecvente și soluțiile lor:

  • 502 Bad Gateway – aplicația backend nu rulează sau portul este greșit
  • 504 Gateway Timeout – backend-ul răspunde prea lent, crește proxy_read_timeout
  • Bucle de redirecționare – verifică că X-Forwarded-Proto este setat corect

Nginx ca reverse proxy este o componentă fundamentală într-o arhitectură web modernă. Fie că vrei să expui mai multe aplicații pe un singur server, să implementezi caching la nivel de infrastructură sau să echilibrezi traficul între mai multe backend-uri, Nginx oferă flexibilitatea și performanța necesare. Configurarea este simplă, iar beneficiile în materie de securitate și performanță sunt imediate.

Ai nevoie de asistență cu configurarea Nginx pe serverul tău? Echipa noastră de suport te poate ajuta cu implementarea.

Înapoi sus
Your Cart

Your cart is empty.