Protocollo di trasferimento ipertestuale versione 2 (HTTP/2 ) è la versione più recente del protocollo HTTP, pubblicata come standard IETF in RFC 7540 nel 2015. Il focus del protocollo è sulle prestazioni; in particolare, latenza percepita dall'utente finale, utilizzo della rete e delle risorse del server. Uno degli obiettivi principali è consentire l'utilizzo di un'unica connessione dai browser a un sito Web. Il protocollo è compatibile con le versioni precedenti, quindi i metodi HTTP, i codici di stato e la semantica sono gli stessi delle versioni precedenti del protocollo. Nginx ha il supporto HTTP/2 dalla versione 1.9.5. In questo tutorial, supporrò che tu abbia già una configurazione TLS funzionante e che tu abbia necessario installare la versione di Nginx sulla tua distribuzione Linux preferita e che tu sappia come utilizzare Let's Encrypt, o sai come emettere un certificato autofirmato.
Requisiti
Per abilitare HTTP/2 in Nginx dovrai soddisfare i seguenti requisiti:
- Nginx versione 1.9.5 o successiva. Puoi controllare la tua versione di Nginx eseguendo (
nginx -v
) comando. - OpenSSL versione 1.0.2 o successiva. Puoi controllare la tua versione di OpenSSL eseguendo il comando (versione OpenSSL).
- Certificato SSL/TLS di Let's Encrypt o un certificato autofirmato.
- Protocollo TLS 1.2 o successivo abilitato. In caso contrario, non sarai in grado di utilizzare HTTP/2. Le implementazioni di HTTP/2 devono utilizzare TLS versione 1.2 o successiva per HTTP/2 su TLS.
Abilita HTTP/2 in Nginx
Per abilitare HTTP/2 in Nginx, dobbiamo aggiungere http2
parametro al listen
direttiva nel nostro host virtuale:
listen 443 ssl http2;
E ricarica la tua configurazione Nginx:
sudo systemctl reload nginx.service
Ecco la configurazione minima del server virtuale che può essere utilizzata per abilitare HTTP/2 in alcuni host virtuali:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
root /path/to/public;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2;
}
Per verificare se il tuo server supporta HTTP/2, puoi utilizzare gli strumenti di sviluppo del browser o i file di registro Nginx. Quello che segue è uno screenshot del browser Google Chrome che mostra HTTP/2 in azione sul dominio https://example.com.
Puoi anche utilizzare la variabile incorporata Nginx $http2 per vedere il protocollo negoziato. Questa variabile registrerà: "h2
” per HTTP/2 su TLS, “h2c
” per HTTP/2 su TCP non crittografato o una stringa vuota altrimenti nel registro di accesso di Nginx se configurato per farlo.
E questo è tutto ciò che serve per abilitare HTTP/2 sul tuo server Nginx.
Link
- RFC 7540
- HTTP/2