// Dezvoltare Web

Cum configurezi HTTP/2 pe Nginx și Apache: ghid complet pentru performanță web — CLIQHOST

08 octombrie 2026 · by Alex M.

Cum configurezi HTTP/2 pe Nginx și Apache: ghid complet pentru performanță web — CLIQHOST

HTTP/2 este versiunea modernă a protocolului HTTP, adoptată oficial în 2015 și susținută astăzi de toate browserele majore. Față de HTTP/1.1, aduce îmbunătățiri semnificative: multiplexare a cererilor, compresie anteturi (HPACK), Server Push și prioritizare a resurselor. Rezultatul concret: site-ul tău se încarcă mai rapid, cu mai puțini timpi de așteptare și mai puțin overhead de conexiune.

În acest ghid vei vedea cum activezi și configurezi HTTP/2 pe Nginx și Apache, pe un server Linux (Ubuntu 22.04 / Debian 12), inclusiv cum verifici că totul funcționează corect. Dacă ai un VPS NVMe CLIQHOST sau un server dedicat, poți aplica pașii de mai jos direct.


De ce contează HTTP/2 pentru site-ul tău?

Înainte de a trece la configurare, merită să înțelegi diferențele concrete față de predecesorul său:

Caracteristică HTTP/1.1 HTTP/2
Conexiuni per domeniu 6–8 paralele (browser) 1 conexiune, multiplexare
Compresie anteturi Nu Da (HPACK)
Server Push Nu Da
Format Text Binar
Latență Ridicată (head-of-line blocking) Redusă

În practică, un site care servea 80 de resurse prin HTTP/1.1 cu 6 conexiuni paralele le poate servi acum printr-o singură conexiune TCP, fără blocaje. Impactul este vizibil mai ales pe conexiuni cu latență mare (mobile, rețele internaționale).

Important: HTTP/2 necesită obligatoriu HTTPS. Asigură-te că ai un certificat SSL activ înainte de a continua.


HTTP/2 pe Nginx

1. Verifică versiunea Nginx

HTTP/2 este suportat începând cu Nginx 1.9.5. Pe Ubuntu 22.04 versiunea din depozit este suficientă:

nginx -v
# nginx version: nginx/1.18.0 (Ubuntu)

Dacă vrei cea mai recentă versiune stabilă, adaugă depozitul oficial Nginx:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx.gpg
echo "deb [signed-by=/usr/share/keyrings/nginx.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \n  | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update && sudo apt install nginx -y

2. Activează HTTP/2 în blocul server

Deschide fișierul de configurare al site-ului tău:

sudo nano /etc/nginx/sites-available/example.com

Modifică directiva listen astfel:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name example.com www.example.com;

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

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    root /var/www/example.com/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Pe Nginx 1.25.1+, sintaxa s-a schimbat: http2 devine o directivă separată (http2 on;), nu mai face parte din listen. Verifică documentația versiunii tale.

3. Testează și reîncarcă configurația

sudo nginx -t
sudo systemctl reload nginx

4. Optimizări suplimentare pentru HTTP/2 pe Nginx

Adaugă în blocul http din /etc/nginx/nginx.conf:

http {
    http2_push_preload on;          # activează Server Push via header Link
    keepalive_timeout 65;
    keepalive_requests 1000;

    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
}

Server Push trimite proactiv resurse critice (CSS, JS) înainte ca browserul să le ceară. Poți activa push-ul per locație:

location = /index.html {
    http2_push /css/main.css;
    http2_push /js/app.js;
}

Sau prin antet HTTP (mai flexibil, controlat din aplicație):

Link: </css/main.css>; rel=preload; as=style

HTTP/2 pe Apache

1. Cerințe prealabile

Apache suportă HTTP/2 prin modulul mod_http2, disponibil din versiunea 2.4.17. Pe Ubuntu 22.04, versiunea implicită este 2.4.52 — suficientă.

apache2 -v
# Server version: Apache/2.4.52 (Ubuntu)

MPM prefork (cel implicit pe multe sisteme) nu este compatibil cu HTTP/2. Trebuie să folosești MPM event sau MPM worker.

2. Comută MPM-ul la event

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

Dacă folosești PHP prin mod_php, trebuie să treci la PHP-FPM:

sudo apt install php8.2-fpm -y
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm

3. Activează modulul mod_http2

sudo a2enmod http2

4. Configurează VirtualHost-ul

Deschide fișierul de configurare al site-ului:

sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf

Adaugă directiva Protocols în blocul VirtualHost SSL:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public

    Protocols h2 h2c http/1.1

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    SSLHonorCipherOrder off
    SSLSessionTickets off

    <Directory /var/www/example.com/public>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

h2 = HTTP/2 peste TLS; h2c = HTTP/2 în clar (fără TLS, suport limitat în browsere); http/1.1 = fallback.

5. Testează și repornește Apache

sudo apache2ctl configtest
sudo systemctl restart apache2

6. Optimizări suplimentare pentru HTTP/2 pe Apache

Adaugă în apache2.conf sau în fișierul VirtualHost:

# Parametri H2
H2Direct on
H2MaxSessionStreams 100
H2StreamMaxMemSize 65536
H2WindowSize 65535

# Server Push
<FilesMatch "index\.html$">
    Header add Link "</css/main.css>; rel=preload; as=style"
    Header add Link "</js/app.js>; rel=preload; as=script"
</FilesMatch>

Asigură-te că modulele headers și rewrite sunt active:

sudo a2enmod headers rewrite
sudo systemctl reload apache2

Cum verifici că HTTP/2 este activ?

Metoda 1: curl

curl -I --http2 https://example.com

În output, caută:

HTTP/2 200

Metoda 2: instrumentele browser

În Chrome/Firefox, deschide DevTools → Network, adaugă coloana „Protocol" (click dreapta pe antet coloană). Cererile HTTP/2 apar ca h2.

Metoda 3: online

Folosește https://tools.keycdn.com/http2-test — introduce domeniul și confirmă suportul HTTP/2.

Metoda 4: nghttp2

sudo apt install nghttp2-client -y
nghttp -nv https://example.com 2>&1 | grep "The negotiated protocol"
# The negotiated protocol: h2

Probleme comune și soluții

HTTP/2 nu se activează pe Apache

  • Cauza frecventă: MPM prefork activ. Verifică cu apachectl -V | grep MPM. Dacă vezi prefork, urmează pașii de mai sus pentru a comuta la event.
  • mod_ssl inactiv: Rulează sudo a2enmod ssl și repornește Apache.
  • OpenSSL prea vechi: HTTP/2 necesită TLS 1.2+ cu ALPN. Verifică cu openssl version.

Nginx ignoră directiva http2

  • Verifică că fișierul de configurare a fost inclus corect în nginx.conf.
  • Asigură-te că nu există un alt bloc server care ascultă pe portul 443 fără http2.

WordPress nu profită de HTTP/2

Dacă site-ul tău rulează pe hosting WordPress CLIQHOST, HTTP/2 poate fi deja activ la nivel de server. Poți verifica cu curl ca mai sus. Pe un VPS SSD, ai control deplin și poți aplica toate configurările din ghidul de față.


HTTP/2 pe cPanel / Shared Hosting

Dacă folosești un plan de hosting shared cPanel CLIQHOST, activarea HTTP/2 se face de la nivel de server — nu din contul tău cPanel. Contactează echipa de suport CLIQHOST pentru a verifica dacă HTTP/2 este activat pe serverul tău și pentru asistență suplimentară.

Pe serverele noastre cPanel, HTTP/2 este activat implicit pentru toate planurile de hosting care beneficiază de SSL activ.


HTTP/3 / QUIC — pasul următor

HTTP/3 (bazat pe protocolul QUIC de la Google/IETF) este deja suportat de Nginx 1.25+ și de unele build-uri Apache. Spre deosebire de HTTP/2 (TCP), HTTP/3 folosește UDP, eliminând complet blocajele de la nivelul transportului.

Activarea HTTP/3 pe Nginx (experimental):

listen 443 quic reuseport;
listen 443 ssl http2;
add_header Alt-Svc 'h3=":443"; ma=86400';

HTTP/3 necesită Nginx compilat cu suport QUIC (--with-http_v3_module). Pe serverele dedicate managed CLIQHOST, echipa noastră poate configura stack-ul complet HTTP/3 la cerere.


Checklist final: HTTP/2 activat corect

  • Certificat SSL valid și activ
  • Nginx: directiva http2 prezentă în listen 443
  • Apache: MPM event activ, mod_http2 activat, Protocols h2 http/1.1 în VirtualHost
  • TLS 1.2 sau 1.3 configurat (fără TLS 1.0 / 1.1)
  • Verificat cu curl -I --http2 — răspuns HTTP/2 200
  • Server Push configurat pentru resurse critice (opțional dar recomandat)
  • Compresie Gzip / Brotli activată paralel cu HTTP/2

Concluzie

HTTP/2 este astăzi o cerință de bază pentru orice site performant — nu un lux. Activarea lui pe Nginx sau Apache durează sub 15 minute și aduce câștiguri reale de viteză, mai ales pentru site-uri cu multe resurse statice.

Dacă vrei să beneficiezi de un mediu deja optimizat, fără bătăi de cap, explorează planurile de VPS NVMe CLIQHOST cu SSD-uri rapide și lățime de bandă generoasă, sau verifică serviciile noastre de administrare servere dacă preferi să lăsăm noi configurările tehnice în seama noastră.

Pentru mai multe ghiduri practice despre optimizarea serverelor web, vizitează blogul CLIQHOST.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"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