// blog

Cum instalezi și configurezi Varnish Cache pe un VPS Linux: ghid complet pentru accelerarea site-ului

August 28, 2026 · by Alex M.

Cum instalezi și configurezi Varnish Cache pe un VPS Linux: ghid complet pentru accelerarea site-ului

Dacă site-ul tău primește trafic consistent și vrei să reduci timpul de răspuns al serverului fără să investești imediat în resurse suplimentare, Varnish Cache este una dintre cele mai eficiente soluții disponibile. Varnish este un accelerator HTTP (HTTP reverse proxy cache) care stochează răspunsurile serverului în memorie RAM, servind conținut static și dinamic de zeci de ori mai rapid decât fără caching.

În acest ghid vei afla cum să instalezi și să configurezi Varnish Cache pe un VPS Linux NVMe cu Ubuntu 22.04, alături de Nginx ca server web backend.

Ce este Varnish Cache și de ce contează?

Varnish Cache funcționează ca un intermediar între utilizator și serverul tău web (Nginx sau Apache). Când un vizitator solicită o pagină, Varnish verifică mai întâi dacă are o versiune salvată în cache. Dacă da, o servește instantaneu fără să mai consulte PHP, baza de date sau orice altă resursă backend.

Beneficii concrete:
- Reducerea timpului de răspuns de la sute de milisecunde la sub 5ms pentru paginile cachuite
- Scăderea consumului de CPU și RAM pe backend
- Suportarea unui număr mult mai mare de vizitatori simultan
- Compatibilitate excelentă cu WordPress, Joomla, Magento și alte CMS-uri

Pentru a profita la maximum de Varnish, ai nevoie de un server cu RAM suficient. Un VPS SSD performant cu minim 2 GB RAM este un punct de plecare bun.

Cerințe preliminare

Înainte de a începe, asigură-te că ai:
- Un VPS cu Ubuntu 22.04 (sau Debian 11/12)
- Acces root sau sudo
- Nginx instalat și funcțional
- Un domeniu configurat care pointează către serverul tău

Dacă nu ai încă un server configurat, poți explora opțiunile noastre de VPS cu administrare inclusă pentru a porni rapid.

Pasul 1: Instalarea Varnish Cache

Actualizează mai întâi lista de pachete:

sudo apt update && sudo apt upgrade -y

Instalează Varnish din repozitoriile oficiale Ubuntu:

sudo apt install varnish -y

Verifică versiunea instalată:

varnishd -V

Pentru o versiune mai nouă (ex. Varnish 7.x), poți folosi repozitoriul oficial Varnish:

curl -s https://packagecloud.io/install/repositories/varnishcache/varnish74/script.deb.sh | sudo bash
sudo apt install varnish -y

Pasul 2: Configurarea Nginx să asculte pe portul 8080

Varnish va asculta pe portul 80 (HTTP public), iar Nginx va rula pe portul 8080 ca backend. Editează configurația Nginx:

sudo nano /etc/nginx/sites-available/default

Modifică linia listen:

server {
    listen 8080;
    server_name exemplu.com www.exemplu.com;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

Restartează Nginx:

sudo systemctl restart nginx

Pasul 3: Configurarea Varnish să asculte pe portul 80

Editează fișierul de serviciu systemd al Varnish:

sudo nano /etc/systemd/system/varnish.service

Sau creează un override:

sudo systemctl edit varnish

Adaugă/modifică secțiunea [Service]:

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd \
  -a :80 \
  -f /etc/varnish/default.vcl \
  -s malloc,256m

Reîncarcă systemd și restartează Varnish:

sudo systemctl daemon-reload
sudo systemctl restart varnish
sudo systemctl enable varnish

Pasul 4: Configurarea fișierului VCL (Varnish Configuration Language)

Fișierul principal de configurare este /etc/varnish/default.vcl. Acesta este scris în VCL — limbajul de configurare propriu Varnish.

Deschide fișierul:

sudo nano /etc/varnish/default.vcl

O configurație de bază pentru WordPress arată astfel:

vcl 4.1;

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

sub vcl_recv {
    # Nu cacheia requesturi autentificate sau cosuri de cumparaturi
    if (req.http.Cookie ~ "wordpress_logged_in|woocommerce_cart") {
        return(pass);
    }

    # Nu cacheia zona de admin
    if (req.url ~ "^/wp-admin" || req.url ~ "^/wp-login.php") {
        return(pass);
    }

    # Sterge cookieurile pentru continut static
    if (req.url ~ "\.(css|js|png|jpg|gif|ico|woff2|svg)$") {
        unset req.http.Cookie;
        return(hash);
    }

    return(hash);
}

sub vcl_backend_response {
    # Cache pentru 1 ora implicit
    set beresp.ttl = 1h;
    set beresp.grace = 15m;
}

sub vcl_deliver {
    # Adauga header pentru debug
    if (obj.hits > 0) {
        set resp.http.X-Cache = "HIT";
    } else {
        set resp.http.X-Cache = "MISS";
    }
}

Restartează Varnish după modificări:

sudo systemctl restart varnish

Pasul 5: Testarea funcționării cache-ului

Folosește curl pentru a verifica dacă Varnish funcționează corect:

curl -I http://exemplu.com

Caută în răspuns header-ul X-Cache:

HTTP/1.1 200 OK
X-Cache: MISS   ← primul request (cache gol)

Repetă comanda:

curl -I http://exemplu.com
HTTP/1.1 200 OK
X-Cache: HIT    ← al doilea request (servit din cache)

Puteți folosi și varnishstat pentru statistici în timp real:

varnishstat

Sau varnishlog pentru a vedea requesturile live:

varnishlog

Pasul 6: Configurarea HTTPS cu Nginx ca SSL terminator

Varnish nu gestionează nativ HTTPS. Soluția standard este să pui Nginx pe portul 443 ca SSL terminator, care trimite traficul decriptat către Varnish pe portul 80.

Fluxul complet: Client → Nginx:443 (SSL) → Varnish:80 → Nginx:8080 (backend)

Adaugă un bloc server în Nginx pentru HTTPS:

server {
    listen 443 ssl http2;
    server_name exemplu.com www.exemplu.com;

    ssl_certificate /etc/letsencrypt/live/exemplu.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/exemplu.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:80;
        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 https;
    }
}

Dacă nu ai încă un certificat SSL, verifică serviciile noastre de certificate SSL profesionale sau configurează gratuit Let's Encrypt cu Certbot.

Pasul 7: Invalidarea cache-ului (Purge)

Când publici conținut nou, trebuie să golești cache-ul Varnish. Adaugă suport pentru purge în VCL:

acl purge {
    "127.0.0.1";
    "localhost";
}

sub vcl_recv {
    if (req.method == "PURGE") {
        if (!client.ip ~ purge) {
            return(synth(405, "Not allowed"));
        }
        return(purge);
    }
    # ... restul configuratiei
}

Trimite o comandă de purge manual:

curl -X PURGE http://exemplu.com/pagina-de-purge

Pentru WordPress există plugin-ul Proxy Cache Purge (fost Varnish HTTP Purge) care automatizează acest proces.

Optimizări suplimentare

  • Mărește memoria cache: Editează linia -s malloc,256m și setează o valoare mai mare (ex. 512m sau 1g) în funcție de RAM-ul disponibil
  • Grace mode: Permite Varnish să servească conținut expirat în timp ce refreshuiește backend-ul — reduce latența percepută
  • Saint mode: Evită să trimită trafic către un backend care returnează erori
  • Directors: Distribuie load-ul între mai multe backend-uri pentru scalabilitate

Dacă site-ul tău a crescut și Varnish singur nu mai face față, ia în considerare un server dedicat managed unde poți configura arhitecturi mai complexe.

Monitorizarea Varnish

Comenzile utile de monitorizare:

# Statistici globale
varnishstat -1

# Hit rate (raport cache)
varnishstat -1 -f MAIN.cache_hit -f MAIN.cache_miss

# Loguri filtrate
varnishtop -i RespHeader

Un hit rate de peste 80% este considerat excelent. Dacă este sub 50%, revizuiește regulile VCL pentru a exclude prea mult conținut de la caching.

Concluzie

Varnish Cache este un instrument puternic care poate transforma radical viteza site-ului tău cu efort relativ redus de configurare. Combinat cu un VPS NVMe rapid și un certificat SSL valid, obții o infrastructură web modernă capabilă să gestioneze trafic ridicat cu resurse minime.

Dacă preferi să lași configurarea serverului pe mâini experților, echipa CLIQHOST oferă servicii de administrare servere Linux la cerere. Contactează-ne prin pagina de contact sau explorează mai multe tutoriale pe blogul nostru tehnic.

SHARE
// ce spun clienții

Ce spun clienții noștri

Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău