Ricerca nel sito web

Come abilitare HTTP/2.0 in Nginx


HTTP/2 è lo standard più recente per il protocollo HTTP, è il successore di HTTP/1.1. Sta diventando sempre più popolare grazie ai vantaggi che offre agli sviluppatori web e agli utenti in generale. Fornisce un trasporto ottimizzato per la semantica HTTP supportando tutte le funzionalità principali di HTTP/1.1 ma mira a essere più efficiente in diversi modi.

Ci sono molte funzionalità oltre a HTTP/2 che ti offrono maggiori possibilità di ottimizzare un sito web/un'applicazione. Offre multiplexing e concorrenza reali, migliore compressione delle intestazioni (codifica binaria), migliore definizione delle priorità, migliori meccanismi di controllo del flusso e una nuova modalità di interazione chiamata "server push" che consente a un server di inviare risposte a un client . Per non parlare del fatto che HTTP/2 si basa sul protocollo sperimentale SPDY di Google.

Pertanto, l'obiettivo principale di HTTP/2 è ridurre il tempo di caricamento complessivo della pagina Web, migliorando così le prestazioni. Si concentra inoltre sull'utilizzo delle risorse della rete e del server, nonché sulla sicurezza poiché, con HTTP/2, la crittografia SSL/TLS è obbligatoria.

In questo articolo imparerai come abilitare Nginx con il supporto HTTP/2 nei server Linux.

Prerequisiti:

  • Un'installazione funzionante della versione NGINX 1.9.5 o successiva, creata con il modulo ngx_http_v2_module.
  • Assicurati che il tuo sito utilizzi il certificato SSL/TLS, se non ne hai uno, puoi ottenerlo da Let's Encrypt o utilizzare un certificato autofirmato.

Puoi installare NGINX o distribuirlo con uno stack LEMP come descritto nelle seguenti guide:

  • Come installare Nginx su CentOS 8
  • Come installare il server LEMP su CentOS 8
  • Come installare NGINX, MySQL/MariaDB e PHP su RHEL 8
  • Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04
  • Installa Nginx con blocchi server (host virtuali) su Debian 10
  • Come utilizzare Nginx come bilanciatore del carico HTTP in Linux

Come abilitare HTTP/2.0 in NGINX

Se hai installato NGINX, verifica che sia stato creato con il modulo ngx_http_v2_module eseguendo il comando seguente.

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Una volta che hai un sito web/applicazione servito da NGINX con HTTPS configurato, apri il file di blocco del server virtuale (o host virtuale) del tuo sito web per la modifica.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Puoi abilitare il supporto HTTP/2 semplicemente aggiungendo il parametro http2 a tutte le direttive listen come mostrato nello screenshot seguente.

listen 443 ssl http2;

La configurazione del blocco server di esempio è simile alla seguente.


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

Salvare le modifiche nel file e chiuderlo.

Quindi controlla la sintassi di configurazione di NGINX, se è OK riavvia il servizio Nginx.

nginx -t
systemctl restart nginx

Successivamente, apri un browser web per verificare se il tuo sito web viene servito tramite HTTP/2.

http://www.example.com

Per accedere alle intestazioni HTTP, fai clic con il pulsante destro del mouse sulla pagina Web visualizzata, seleziona Ispeziona dall'elenco di opzioni per aprire gli strumenti per sviluppatori, quindi fai clic sulla scheda Rete e ricarica la pagina.

Controlla sotto Protocolli per vedere quello utilizzato dal tuo sito (se non vedi l'intestazione Protocolli, fai clic con il pulsante destro del mouse su una qualsiasi delle intestazioni, ad esempio Nome, quindi seleziona Protocollo dall'elenco per visualizzarlo come intestazione).

Se il tuo sito è in esecuzione su HTTP/1.1, sotto Protocollo, vedrai http/1.1 come mostrato nello screenshot seguente.

Se è in esecuzione su HTTP/2, sotto Protocollo, vedrai h2 come mostrato nello screenshot seguente. Potresti voler disabilitare la cache del browser per visualizzare il contenuto più recente servito direttamente dal server web.

È tutto! Per ulteriori informazioni, consultare la documentazione del modulo ngx_http_v2_module. Non esitate a porre domande tramite il modulo di feedback sottostante.