Moldova · Proxy_Hosting · 27-10-2026
Un server care găzduiește aplicații web ajunge repede să aibă nevoie de un strat intermediar între vizitator și procesul aplicației. În practică, cel mai des acest strat este nginx, configurat ca reverse proxy. Pe un VPS de la un furnizor local sau de la un provider internațional cu prezență în Chișinău, configurația de bază ia o jumătate de oră, dar problemele apar la detalii: timeout-uri, antete transmise greșit, căi relative rupte.
Dacă publici o aplicație sub un subfolder, de exemplu /blog sau /shop, trebuie să rescrii corect căile. O linie de tipul proxy_pass http://127.0.0.1:3000/; cu slash la final schimbă comportamentul față de varianta fără slash. Mulți administratori pierd ore întregi căutând de ce imaginile și fișierele CSS nu se încarcă, când de fapt aplicația primește cereri pe o cale pe care nu o cunoaște. Testează cu curl -I înainte de a da drumul la trafic.
Pentru aplicațiile care fac apeluri externe, setează explicit proxy_connect_timeout și proxy_read_timeout. Valorile implicite de 60 de secunde sunt prea mari pentru un API care trebuie să răspundă în două secunde. În schimb, dacă lucrezi cu un serviciu de traducere a paginilor sau cu un site de proxy care redirecționează conținut, un timeout mai generos evită erorile 504 care apar exact când utilizatorul final dă click.
Când aplicația rulează într-un container, reverse proxy-ul trebuie să știe pe ce adresă să trimită traficul. În rețeaua implicită Docker, numele containerului funcționează ca hostname, dar numai dacă nginx rulează în aceeași rețea. O greșeală frecventă este să pui proxy_pass http://localhost:8080 în interiorul containerului nginx: localhost se referă la containerul nginx, nu la cel al aplicației. Soluția este o rețea definită explicit și un nume de serviciu.
Un al doilea detaliu ține de fișierele de configurare. Dacă le montezi ca volum, modificările se aplică la restart, dar nu la reload dacă fișierul a fost înlocuit, nu editat. Pe serverele mici din Moldova, cu 2 GB de RAM, un docker compose up -d repetat poate lăsa containere orfane care consumă resurse. Verifică periodic cu docker ps -a și curăță imaginile vechi, altfel discul de 40 GB se umple în două luni.
Aplicația are nevoie să știe de la ce adresă IP vine cererea și dacă protocolul original a fost HTTPS. Transmite X-Forwarded-For, X-Forwarded-Proto și Host. Fără ele, logurile arată toate cererile ca venind de la 127.0.0.1, iar redirectările către HTTPS intră în buclă. Pentru aplicațiile PHP, verifică dacă framework-ul citește aceste antete; altfel vei vedea linkuri generate cu http:// pe o pagină servită prin https://.
O parte din aplicațiile găzduite local au nevoie să iasă în internet printr-un proxy, fie pentru a accesa un serviciu care blochează IP-uri din anumite regiuni, fie pentru a uniformiza traficul. În PHP, mecanismul este simplu: opțiunile CURLOPT_PROXY, CURLOPT_PROXYUSERPWD și, pentru SOCKS5, CURLOPT_PROXYTYPE setat corect. Un server Dante configurat ca SOCKS5 pe portul 1080 este o alegere comună pentru traficul de ieșire.
Greșeala tipică este să nu tratezi codurile de eroare. Dacă proxy-ul cade, curl returnează un cod diferit de zero, iar aplicația continuă să afișeze un mesaj generic. Pune un timeout de conectare de 5 secunde și unul total de 15, apoi loghează codul returned. Vei vedea imediat dacă problema este la proxy sau la serviciul destinație.
Pentru testarea încărcării, instrumentele de tip JMeter permit definirea unui proxy la nivel de plan de test, astfel încât toate cererile să treacă prin același punct. Este util când vrei să măsori latența reală pentru utilizatorii din regiune, nu doar din rețeaua serverului. Un test de 200 de cereri concurente prin proxy arată dacă banda contratată acoperă traficul de vârf.
Un proxy deschis pe internet este găsit în câteva zile de scanere automate. Restrânge accesul la adrese IP cunoscute, folosește autentificare și nu lăsa portul 3128 sau 1080 accesibil din toată lumea. Pe un server din Chișinău cu IP static, regulile de firewall se aplică la nivel de provider, dar și local. Verifică lunar lista de conexiuni active: un număr mare de sesiuni către aceeași destinație este un semn de abuz.
Pentru serviciile care oferă perioade de test, folosește-le ca să compari latența dintre un proxy în România și unul în Estonia sau Spania. Diferența pentru un utilizator din Bălți sau Cahul este de obicei între 20 și 60 de milisecunde, ceea ce contează la aplicațiile interactive, dar nu la descărcarea fișierelor. Alege punctul de ieșire în funcție de destinație, nu după preț.
În final, documentează configurația. Un fișier scurt cu porturile folosite, numele containerelor și comenzile de reload economisește timp atunci când altcineva preia serverul. Majoritatea incidentelor nu vin din lipsa de cunoștințe, ci din configurații nescrise pe care nimeni nu le mai înțelege după șase luni.