15%

Economisește 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
01.11.2024

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

Nginx este unul dintre cele mai larg implementate servere web din lume, celebru pentru performanța sa excepțională, amprenta redusă 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 te 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 verificare în timp real.

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

Cuprins

  1. Ce este HTTP/2 și de ce conteaza?
  2. Cerințe preliminare
  3. Pasul 1 — Actualizează indexul pachetelor sistemului
  4. Pasul 2 — Instalează Nginx
  5. Pasul 3 — Instalează OpenSSL
  6. Pasul 4 — Obține un certificat SSL gratuit cu Let’s Encrypt
  7. Pasul 5 — Configurează Nginx pentru HTTP/2
  8. Pasul 6 — Optimizează configurația Nginx HTTP/2
  9. Pasul 7 — Testează configurația Nginx
  10. Pasul 8 — Repornește Nginx și aplică modificările
  11. Pasul 9 — Verifică că HTTP/2 este activ
  12. Depanarea problemelor comune
  13. Concluzie

Ce este HTTP/2 și de ce conteaza?

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 în uz din 1997.

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

CaracteristicăHTTP/1.1HTTP/2
MultiplexareO cerere per conexiuneCereri simultane multiple
Compresie antetAntete în text simpluCompresie HPACK
Server pushNesuportatSuportat
Protocol binarBazat pe textCadru binar
Refolosire conexiuneLimitatăComplet persistentă
LatențăMai mareSemnificativ redusă

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

> Important: HTTP/2 necesită HTTPS (TLS/SSL). Nu poți rula HTTP/2 peste o conexiune necriptată în niciun browser modern. Acesta este motivul pentru care obținerea unui certificat SSL este un pas obligatoriu în acest ghid. Dacă ai nevoie de un certificat de încredere pentru domeniul tău, AlexHost oferă Certificatele SSL pentru toate cazurile de utilizare.

Cerințe preliminare

Înainte de a începe, asigură-te că ai următoarele în loc:

  • 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 sudo privilegii sau acces direct root
  • Un nume de domeniu înregistrat indicat către adresa IP a serverului tău printr-o înregistrare A
  • Porturile 80 și 443 deschise în firewall-ul tău (UFW sau iptables)
  • Familiaritate de bază cu linia de comandă Linux

Dacă nu ai încă un domeniu, poți înregistra unul direct prin Înregistrarea domeniilor AlexHost și să-l indici către serverul tău în câteva minute.

Pasul 1 — Actualizează indexul pachetelor sistemului

Întotdeauna începe prin reîmprospătarea indexului pachetelor pentru a te asigura că instalezi versiunile cele mai recente disponibile ale tuturor software-ului:

sudo apt update && sudo apt upgrade -y

Această comandă actualizează lista locală de pachete și modernizează orice pachete deja instalate pe sistemul tău.

Pasul 2 — Instalează Nginx

Instalează pachetul Nginx

Depozitele implicite ale Ubuntu includ o versiune stabilă a Nginx. Instalează-o cu:

sudo apt install nginx -y

Pornește serviciul Nginx

Odată instalat, pornește serviciul Nginx imediat:

sudo systemctl start nginx

Activează Nginx pentru a se porni automat la boot

Asigură-te că Nginx se lansează automat de fiecare dată când serverul se repornește:

sudo systemctl enable nginx

Verifică că Nginx rulează

Confirmă că serviciul este activ și rulează:

sudo systemctl status nginx

Ar trebui să vezi 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 Nginx prin firewall

Dacă UFW este activ pe serverul tău, permite 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 necesare pentru această configurație.

Pasul 3 — Instalează OpenSSL

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

sudo apt install openssl -y

Verifică versiunea instalată:

openssl version

Ar trebui să vezi o ieșire ca OpenSSL 3.0.x sau similar. Orice versiune peste 1.0.2 suportă complet seturile de cifre necesare pentru HTTP/2.

Pasul 4 — Obține un certificat SSL gratuit cu Let’s Encrypt

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

Instalează Certbot și pluginul Nginx

sudo apt install certbot python3-certbot-nginx -y

Solicită certificatul SSL

Înlocuiește your_domain.com cu domeniul tău înregistrat actual:

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 folosi certificatul
  4. Configurează redirecționări HTTPS de la HTTP

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

Verifică 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. Testează procesul de reînnoire cu o rulare 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, ia în considerare un Server Dedicat pentru control complet asupra infrastructurii SSL.

Pasul 5 — Configurează Nginx pentru HTTP/2

Acum că SSL este în loc, trebuie să activezi explicit HTTP/2 în configurația blocului de server Nginx.

Deschide fișierul de configurare Nginx

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

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

Dacă ai creat un bloc de server personalizat pentru domeniul tău (recomandat), deschide acel fișier în schimb:

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

Actualizează blocul de server pentru a activa HTTP/2

Localizează directiva listen 443 ssl;. Certbot va fi adăugat aceasta automat. Modifică-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ă este pe linia listen: adăugarea http2 după ssl activează protocolul HTTP/2 pentru acel gazdă virtuală.

Salvează și ieși

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

Pasul 6 — Optimizează configurația Nginx HTTP/2

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

Setări SSL și de performanță recomandate

Adaugă sau verifică următoarele directive în interiorul blocului server al tău:

# 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 active bazate pe text.

Pasul 7 — Testează configurația Nginx

Nu repornii 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.

Rulează testul de configurare î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ă vezi vreo eroare, revizuiește cu atenție ieșirea. Mesajul de eroare va include numele fișierului și numărul liniei unde a fost detectată problema.

Pasul 8 — Repornește Nginx și aplică modificările

Odată ce testul de configurare trece, repornește Nginx pentru a aplica toate modificările:

sudo systemctl restart nginx

Alternativ, dacă preferi o reîncărcare fără timp de inactivitate (care aplică modificări de configurare fără a renunța la conexiuni active):

sudo systemctl reload nginx

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

Pasul 9 — Verifică că HTTP/2 este activ

După repornirea Nginx, confirmă că HTTP/2 este de fapt servit clienților folosind una dintre următoarele metode.

Metoda 1: Folosind curl

Instrumentul de linie de comandă curl poate raporta versiunea protocolului utilizată:

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

Caută antetul de răspuns:

HTTP/2 200

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

Metoda 2: Folosind comanda OpenSSL

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

În ieșire, caută:

ALPN protocol: h2

h2 este identificatorul ALPN pentru HTTP/2. Dacă vezi aceasta, serverul tău anunță corect suportul HTTP/2 în timpul apelului de mână TLS.

Metoda 3: Folosind instrumentele pentru dezvoltatori ale browserului

  1. Deschide site-ul tău în Google Chrome sau Mozilla Firefox
  2. Apasă F12 pentru a deschide instrumentele pentru dezvoltatori
  3. Navighează la fila Rețea
  4. Reîncarcă pagina (F5 sau Ctrl+R)
  5. Fă clic dreapta pe orice antet de coloană din lista de cereri și activează coloana Protocol
  6. Ar trebui să vezi h2 listat ca protocol pentru cererile domeniului tău

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

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

Depanarea problemelor comune

HTTP/2 nu apare în browser în ciuda configurației

  • Cauză: Browserul a memorat o conexiune mai veche HTTP/1.1.
  • Remediere: Șterge memoria cache și cookie-urile browserului, sau testează într-o fereastră privată/incognito.

nginx -t returnează erori de certificat SSL

  • Cauză: Căi de certificat incorecte în fișierul de configurare.
  • Remediere: Verifică căile exacte folosind sudo ls /etc/letsencrypt/live/your_domain.com/ și actualizează directivele ssl_certificate și ssl_certificate_key în consecință.

Portul 443 nu este accesibil

  • Cauză: Firewall-ul blochează traficul HTTPS.
  • Remediere: Rulează sudo ufw allow 443/tcp și verifică cu sudo ufw status.

Certbot eșuează validarea domeniului

  • Cauză: Înregistrarea A DNS nu s-a propagat încă, sau portul 80 este blocat.
  • Remediere: Verifică că domeniul tău se rezolvă la IP-ul corect folosind dig your_domain.com A. Asigură-te că portul 80 este deschis pentru provocarea ACME HTTP.

###PPT_NOTR

15%

Economisește 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