Dall'inizio del World Wide Web (www ), l'HTTP protocollo si è evoluto nel corso degli anni per fornire contenuti digitali sicuri e veloci su Internet.
La versione più utilizzata è HTTP 1.1 e sebbene sia dotato di miglioramenti delle funzionalità e ottimizzazioni delle prestazioni per affrontare le carenze delle versioni precedenti, non è all'altezza di alcune altre caratteristiche salienti che sono state affrontate da HTTP/2 .
Quali sono le limitazioni di HTTP/1.1?
HTTP/1.1 Il protocollo è irto delle seguenti carenze che lo rendono meno ideale soprattutto quando si eseguono server Web ad alto traffico:
- Ritardi nel caricamento delle pagine web a causa di intestazioni HTTP lunghe.
- HTTP/1.1 è in grado di inviare solo una richiesta per ogni file per connessione TCP.
- Dato che HTTP/1.1 elabora una richiesta per ogni connessione TCP, i browser sono costretti a inviare un diluvio di connessioni TCP parallele per elaborare simultaneamente le richieste. Ciò porta alla congestione del TCP e, in definitiva, allo spreco di larghezza di banda e al degrado della rete.
I problemi sopra menzionati hanno spesso portato a un degrado delle prestazioni e ad elevati costi generali nell'utilizzo della larghezza di banda. HTTP/2 è venuto in scena per affrontare questi problemi ed è ora il futuro dei protocolli HTTP.
Vantaggi dell'utilizzo di HTTP/2
Offre i seguenti vantaggi:
- Compressione dell'intestazione che riduce al minimo le richieste dei client e quindi riduce il consumo di larghezza di banda. L'effetto risultante è un'elevata velocità di caricamento della pagina.
- Multiplexing di più richieste su una connessione TCP. Sia il server che il client possono suddividere una richiesta HTTP in più frame e raggrupparli all'altra estremità.
- Performance web più veloci che di conseguenza portano a un miglior posizionamento SEO.
- Sicurezza migliorata poiché la maggior parte dei browser tradizionali carica HTTP/2 su HTTPS.
- HTTP/2 è considerato più mobile-friendly grazie alla funzione di compressione dell'intestazione.
Detto questo, abiliteremo HTTP/2 su Apache su Ubuntu 20.04 LTS e Ubuntu 18.04 LTS .
Prerequisiti:
Prima di iniziare, assicurati di abilitare HTTPS sul server web Apache prima di abilitare HTTP/2 . Questo perché tutti i browser Web tradizionali supportano HTTP/2 su HTTPS . Ho un nome di dominio puntato a un'istanza su Ubuntu 20.04 che esegue il server Apache protetto utilizzando il certificato Let's Encrypt.
Inoltre, ti consigliamo di avere Apache 2.4.26 e versioni successive per i server di produzione che intendono passare a HTTP/2 .
Per verificare la versione di Apache sei in esecuzione, esegui il comando:
$ apache2 -v
Controlla la versione di Apache in Ubuntu
Dall'output, puoi vedere che stiamo utilizzando l'ultima versione, che è Apache 2.4.41 al momento della stesura di questo articolo.
Abilita HTTP/2 su un host virtuale Apache
Per iniziare, verifica prima che il server web stia eseguendo HTTP/1.1 . Puoi farlo su un browser aprendo la sezione degli strumenti per sviluppatori su Google Chrome usando il Ctrl +SHIFT + I
combinazione. Fai clic su "Rete ' e individua il 'Protocollo colonna '.
Conferma versione protocollo HTTP
Quindi, abilita HTTP/2 modulo su Ubuntu eseguendo il comando seguente.
$ sudo a2enmod http2
Abilita HTTP/2 su Ubuntu
Quindi, individua e modifica il tuo SSL file host virtuale, se hai abilitato HTTPS utilizzando Let's Encrypt , viene creato un nuovo file con un les-ssl.conf suffisso.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Inserisci la direttiva di seguito dopo il <VirtualHost *:443>
tag.
Protocols h2 http/1.1
Abilita HTTP/2 su Apache
Per salvare le modifiche, riavvia il server web Apache.
$ sudo systemctl restart apache2
Per verificare se HTTP/2 è abilitato, recupera le intestazioni HTTP usando il seguente comando curl come mostrato.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Controlla il supporto HTTP/2 in Apache
Dovresti visualizzare l'output.
HTTP/2 200
Sul browser, ricarica il tuo sito. Quindi torna agli strumenti per sviluppatori e conferma HTTP/2 indicato da h2
etichetta sul "Protocollo colonna '.
Conferma versione protocollo HTTP/2
Quando si utilizza il modulo mod_php con Apache
Se stai eseguendo Apache insieme a mod_php modulo, devi passare a PHP-FPM . Questo perché il mod_php il modulo utilizza il prefork MPM modulo che non è supportato da HTTP/2 . Devi disinstallare il prefork MPM e passa a mpm_event modulo che sarà supportato da HTTP/2 .
Se stai usando PHP 7.4 mod_php modulo, ad esempio, disabilitalo come mostrato:
$ sudo a2dismod php7.4
Disabilita modulo mod_php
Successivamente, disabilita il prefork MPM modulo.
$ sudo a2dismod mpm_prefork
Disabilita Prefork MPM in Apache
Dopo aver disabilitato i moduli, abilita Event MPM , CGI_veloce e setenvif moduli come mostrato.
$ sudo a2enmod mpm_event proxy_fcgi setenvif
Abilita MPM eventi in Apache
Installa PHP-FPM su Ubuntu
Quindi, installa e avvia PHP-FPM come mostrato.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Quindi abilita PHP-FPM per iniziare all'avvio.
$ sudo systemctl enable php7.4-fpm
Quindi, abilita PHP-FPM come gestore PHP di Apache e riavvia il server web Apache per apportare le modifiche.
$ sudo a2enconf php7.4-fpm
Abilita il supporto HTTP/2 in Apache Ubuntu
Quindi abilita il modulo HTTP/2 come prima.
$ sudo a2enmod http2
Riavvia Apache per sincronizzare tutte le modifiche.
$ sudo systemctl restart apache2
Infine, puoi verificare se il tuo server utilizza HTTP/2 protocollo utilizzando il comando curl come mostrato.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Controlla il protocollo HTTP/2 in Apache
Puoi anche scegliere di utilizzare gli strumenti per sviluppatori su Google Chrome browser per verificare come precedentemente documentato. Siamo giunti alla fine di questa guida, speriamo che tu abbia trovato preziose informazioni e che tu possa abilitare comodamente HTTP/2 su Apache con facilità.
Condividere è prendersi cura...Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit