Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Administrație Linux Securitate

Cum să instalezi Nginx cu suport HTTP/2 pe Ubuntu (Ghid complet)

Nginx este unul dintre cele mai utilizate servere web din lume, celebru pentru performanța sa excepțională, amprenta mică de memorie și capacitatea de a gestiona mii de conexiuni simultane. Atunci când este combinat cu HTTP/2, Nginx devine o platformă și mai puternică — permițând cereri multiplexate, compresie de antet, server push și timpi de încărcare a paginii dramatic redusi.

Acest ghid cuprinzător vă ghidează prin fiecare pas necesar pentru a instala Nginx cu suport complet HTTP/2 pe Ubuntu 20.04 și Ubuntu 22.04 LTS, de la configurarea inițială prin configurarea SSL, optimizarea blocului de server și verificarea în direct.

> Pentru cine este acest ghid? Administratori de sistem, dezvoltatori și proprietari de site-uri care doresc să maximizeze performanța web pe un server Linux. Dacă vă rulați site-ul pe un plan VPS Hosting sau un Server Dedicat, acest tutorial se aplică direct mediului dvs.

Ce este HTTP/2 și de ce este important?

HTTP/2 este a doua versiune majoră a Hypertext Transfer Protocol, standardizată în RFC 7540. A fost proiectată pentru a aborda limitările de performanță ale HTTP/1.1, care a fost folosit din 1997.

Avantajele cheie ale HTTP/2 față de HTTP/1.1:

CaracteristicăHTTP/1.1HTTP/2
MultiplexingO cerere per conexiuneCereri simultane multiple
Compresie antetAntete în text simpluCompresie HPACK
Server pushNu este acceptatAcceptat
Protocol binarBazat pe textFraming binar
Reutilizarea conexiunilorLimitatăComplet persistentă
LatențăMai mareSemnificativ redusă

Pentru proprietarii de site-uri web, activarea HTTP/2 se traduce direct în încărcări de pagină mai rapide, scoruri Core Web Vitals mai bune și clasamente SEO îmbunătățite — deoarece Google folosește viteza paginii ca semnal de clasament.

> Important: HTTP/2 necesită HTTPS (TLS/SSL). Nu puteți rula HTTP/2 pe o conexiune neencriptată în niciun browser modern. Acesta este motivul pentru care obținerea unui certificat SSL este o etapă obligatorie în acest ghid. Dacă aveți nevoie de un certificat de încredere pentru domeniul dvs., AlexHost oferă Certificatele SSL pentru toate cazurile de utilizare.

Condiții preliminare

Înainte de a începe, asigurați-vă că aveți următoarele:

  • Un server care rulează Ubuntu 20.04 LTS sau Ubuntu 22.04 LTS (pașii sunt aproape identici pentru ambele)
  • Un utilizator non-root cu privilegii sudo sau acces direct root
  • Un nume de domeniu înregistrat care indică adresa IP a serverului dvs. printr-un înregistrare A
  • Porturile 80 și 443 deschise în firewall-ul dvs. (UFW sau iptables)
  • Familiaritate de bază cu linia de comandă Linux

Dacă nu aveți încă un domeniu, puteți înregistra unul direct prin Înregistrarea domeniilor AlexHost și îl puteți indica către serverul dvs. în câteva minute.

Pasul 1 — Actualizați indexul pachetelor sistemului

Întotdeauna începeți prin reîmprospătarea indexului pachetelor pentru a vă asigura că instalați cele mai recente versiuni disponibile ale tuturor software-ului:

sudo apt update && sudo apt upgrade -y

Această comandă actualizează lista locală de pachete și actualizează orice pachete învechite deja instalate pe sistemul dvs.

Pasul 2 — Instalați Nginx

Instalați pachetul Nginx

Depozitele implicite ale Ubuntu includ o versiune stabilă a Nginx. Instalați-l cu:

sudo apt install nginx -y

Porniți serviciul Nginx

După instalare, porniți serviciul Nginx imediat:

sudo systemctl start nginx

Activați Nginx pentru a se porni automat la boot

Asigurați-vă că Nginx se lansează automat de fiecare dată când serverul se repornește:

sudo systemctl enable nginx

Verificați că Nginx rulează

Confirmați că serviciul este activ și rulează:

sudo systemctl status nginx

Ar trebui să vedeți o ieșire similară cu:

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since ...

Permiteți Nginx prin firewall

Dacă UFW este activ pe serverul dumneavoastră, permiteți traficul HTTP și HTTPS:

sudo ufw allow 'Nginx Full'
sudo ufw status

Nginx Full deschide atât portul 80 (HTTP) cât și portul 443 (HTTPS), ambele fiind necesare pentru această configurare.

Pasul 3 — Instalați OpenSSL

HTTP/2 depinde de TLS, care la rândul său depinde de OpenSSL. Instalați-l pentru a vă asigura că toate dependențele criptografice sunt disponibile:

sudo apt install openssl -y

Verificați versiunea instalată:

openssl version

Ar trebui să vedeți o ieșire similară cu OpenSSL 3.0.x sau asemănătoare. Orice versiune deasupra 1.0.2 suportă complet seturile de cifre necesare pentru HTTP/2.

Pasul 4 — Obțineți un Certificat SSL Gratuit cu Let’s Encrypt

Let’s Encrypt oferă certificatele SSL/TLS gratuite, reînnoibile automat și de încredere pentru toți browserele majore. Clientul Certbot face întregul proces simplu.

Instalați Certbot și pluginul Nginx

sudo apt install certbot python3-certbot-nginx -y

Solicitați Certificatul SSL

Înlocuiți your_domain.com cu numele de domeniu înregistrat real:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Certbot va:

  1. Verifica proprietatea domeniului printr-o provocare HTTP
  2. Emite certificatul de la Let’s Encrypt
  3. Modifică automat configurația Nginx pentru a utiliza certificatul
  4. Configurează redirecționări HTTPS de la HTTP

Urmați prompturile interactive. Când vi se cere dacă să redirecționați traficul HTTP la HTTPS, selectați opțiunea 2 (Redirecționare) — aceasta este alegerea recomandată.

Verificați Reînnoirea Automată a Certificatului

Certificatele Let’s Encrypt expiră după 90 de zile. Certbot instalează o sarcină cron sau un cronometru systemd pentru a le reînnoi automat. Testați procesul de reînnoire cu o execuție de probă:

sudo certbot renew --dry-run

Dacă nu apar erori, reînnoirea automată este configurată corect.

> Sfat: Pentru mediile de producție cu mai multe domenii sau certificatele wildcard, luați în considerare un Server Dedicat pentru control complet asupra infrastructurii SSL.

Pasul 5 — Configurați Nginx pentru HTTP/2

Acum că SSL este implementat, trebuie să activați în mod explicit HTTP/2 în configurația blocului server Nginx.

Deschideți fișierul de configurare Nginx

Configurația site-ului implicit se află la:

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

Dacă ați creat un bloc server personalizat pentru domeniul dvs. (recomandat), deschideți acel fișier în schimb:

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

Actualizați blocul server pentru a activa HTTP/2

Localizați directiva listen 443 ssl;. Certbot a adăugat aceasta automat. Modificați-o pentru a include http2:

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

    server_name your_domain.com www.your_domain.com;

    # SSL Certificate paths (set by Certbot)
    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/your_domain.com/html;
    index index.html index.htm index.php;

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

# HTTP to HTTPS redirect block
server {
    listen 80;
    listen [::]:80;
    server_name your_domain.com www.your_domain.com;
    return 301 https://$host$request_uri;
}

Schimbarea critică se află pe linia listen: adăugarea http2 după ssl activează protocolul HTTP/2 pentru acel gazdă virtuală.

Salvați și ieșiți

Apăsați CTRL + X, apoi Y, apoi Enter pentru a salva fișierul și a ieși din editorul nano.

Pasul 6 — Optimizați Configurația Nginx HTTP/2

Activarea simplă a HTTP/2 este un bun început, dar aplicarea optimizărilor suplimentare vă asigură că extrageți performanța maximă din configurația dvs.

Setări SSL și de Performanță Recomandate

Adăugați sau verificați următoarele directive în interiorul blocului server:

# Modern TLS protocols only
ssl_protocols TLSv1.2 TLSv1.3;

# Strong cipher suites compatible with HTTP/2
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;

# SSL session caching for performance
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;

# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

# HTTP Strict Transport Security (HSTS)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

# Additional security headers
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

# Gzip compression (complements HTTP/2)
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

> Notă despre HTTP/2 și Gzip: HTTP/2 folosește propria compresie de antet HPACK, dar activarea Gzip pentru corpurile de răspuns oferă în continuare economii semnificative de lățime de bandă pentru activele bazate pe text.

Pasul 7 — Testați configurația Nginx

Nu reporniți niciodată Nginx fără a testa mai întâi configurația pentru erori de sintaxă. Un fișier configurat incorect poate duce la căderea întregului server web.

Rulați testul de configurație încorporat:

sudo nginx -t

Un test reușit produce:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Dacă vedeți vreo eroare, examinați cu atenție rezultatul. Mesajul de eroare va include numele fișierului și numărul liniei unde a fost detectată problema.

Pasul 8 — Reporniți Nginx și aplicați modificările

Odată ce testul de configurare trece, reporniți Nginx pentru a aplica toate modificările:

sudo systemctl restart nginx

Alternativ, dacă preferați o reîncărcare fără timp de inactivitate (care aplică modificările de configurare fără a întrerupe conexiunile active):

sudo systemctl reload nginx

Pentru activarea HTTP/2 în special, se recomandă o repornire completă pentru a vă asigura că noile setări de protocol sunt complet inițializate.

Pasul 9 — Verificați dacă HTTP/2 este activ

După repornirea Nginx, confirmați că HTTP/2 este servit efectiv clienților folosind una dintre următoarele metode.

Metoda 1: Folosind curl

Instrumentul curl din linia de comandă poate raporta versiunea protocolului utilizat:

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

Căutați antetul răspunsului:

HTTP/2 200

Dacă vedeți HTTP/2 200, HTTP/2 funcționează corect.

Metoda 2: Folosind comanda OpenSSL

openssl s_client -connect your_domain.com:443 -alpn h2

În rezultat, căutați:

ALPN protocol: h2

h2 este identificatorul ALPN pentru HTTP/2. Dacă vedeți aceasta, serverul dvs. anunță corect suportul HTTP/2 în timpul apelării TLS.

Metoda 3: Folosind instrumentele pentru dezvoltatori din browser

  1. Deschideți site-ul dvs. în Google Chrome sau Mozilla Firefox
  2. Apăsați F12 pentru a deschide Instrumentele pentru dezvoltatori
  3. Navigați la fila Network
  4. Reîncărcați pagina (F5 sau Ctrl+R)
  5. Faceți clic dreapta pe orice antet de coloană din lista de cereri și activați coloana Protocol
  6. Ar trebui să vedeți h2 listat ca protocol pentru cererile domeniului dvs.

Metoda 4: Folosind un instrument online de testare HTTP/2

Vizitați https://tools.keycdn.com/http2-test și introduceți domeniul dvs. Instrumentul va confirma dacă HTTP/2 este activ și va furniza detalii suplimentare despre configurația TLS a serverului dvs.

Depanare Probleme Comune

HTTP/2 Nu Se Afiseaza in Browser in Ciuda Configurarii

  • Cauza: Browser-ul a stocat in cache o conexiune mai veche HTTP/1.1.
  • Remediere: Sterge cache-ul si cookie-urile browser-ului, sau testeaza intr-o fereastra privata/incognito.

nginx -t Returneaza Erori de Certificat SSL

  • Cauza: Cai incorecte ale certificatului in fisierul de configurare.
  • Remediere: Verifica caile exacte folosind sudo ls /etc/letsencrypt/live/your_domain.com/ si actualizeaza directivele ssl_certificate si ssl_certificate_key in consecinta.

Portul 443 Nu Este Accesibil

  • Cauza: Firewall-ul blocheaza traficul HTTPS.
  • Remediere: Executa sudo ufw allow 443/tcp si verifica cu sudo ufw status.

Certbot Esueaza la Validarea Domeniului

  • Cauza: Inregistrarea DNS A nu s-a propagat inca, sau portul 80 este blocat.
  • Remediere: Verifica ca domeniul tau se rezolva la IP-ul corect folosind dig your_domain.com A. Asigura-te ca portul 80 este deschis pentru provocarea ACME HTTP.

unknown directive "http2" Eroare in Nginx

  • Cauza: Versiunea Nginx este prea veche (anterioara 1.9.5) sau a fost compilata fara suport HTTP/2.
  • Remediere: Actualizeaza Nginx. Pe Ubuntu 20.04+, versiunea din depozitul implicit suporta HTTP/2. Poti adauga si PPA-ul oficial Nginx: sudo add-apt-repository ppa:nginx/stable && sudo apt update && sudo apt upgrade nginx.

Concluzie

Ați instalat cu succes Nginx cu suport complet HTTP/2 pe Ubuntu. Iată un rezumat al tuturor realizărilor:

  • ✅ Instalat și activat Nginx ca serviciu de sistem
  • ✅ Obținut un certificat SSL gratuit, cu reînnoire automată, prin Let’s Encrypt și Certbot
  • ✅ Configurat blocul server Nginx cu directiva http2
  • ✅ Aplicat întărirea TLS, OCSP stapling, HSTS și compresie Gzip
  • ✅ Testat configurația și verificat că HTTP/2 este activ

Activarea HTTP/2 este una dintre optimizările cu cel mai mare impact și cel mai mic efort pe care le puteți face unui server web. Combinată cu setări TLS puternice și anteturi de cache corespunzătoare, îmbunătățește semnificativ timpii de încărcare a paginii, scorurile Core Web Vitals și, în final, clasamentul site-ului dvs. în motoarele de căutare.

Mențineți stiva actualizată: Rulați regulat sudo apt update && sudo apt upgrade pentru a ține Nginx, OpenSSL și Certbot la zi cu cele mai recente patch-uri de securitate.

Doriți să Optimizați Performanța Serverului

Câștigurile de performanță din HTTP/2 sunt mai pronunțate pe infrastructură rapidă și fiabilă. Dacă sunteți în prezent pe hosting partajat și atingeți limitele de resurse, luați în considerare upgrade-ul la un plan VPS Hosting pentru resurse dedicate și acces complet root. Pentru aplicații cu trafic ridicat, Serverele Dedicate oferă performanță brută incomparabilă. Puteți gestiona, de asemenea, ușor mediul serverului cu un VPS cu cPanel dacă preferați o interfață grafică în locul liniei de comandă.

Indiferent de nevoile dvs. de infrastructură, AlexHost oferă platforma pentru a rula Nginx, HTTP/2 și întreaga stivă web la eficiență maximă.