Ti mostreremo come configurare Apache con HTTP/2. HTTP/2 è il primo importante aggiornamento del protocollo HTTP dal 1997. L'obiettivo principale di HTTP/2 è ridurre la latenza, ridurre il numero totale di connessioni TCP, migliorando così la velocità di caricamento della pagina nei browser web. HTTP/2 è retrocompatibile con HTTP/1.1, tutta la semantica dell'applicazione di HTTP è la stessa, tranne il modo di trasmettere i dati tramite la connessione TCP. HTTP/2 sfrutta il multiplexing e consente richieste asincrone (parallele) e fornisce la compressione dei dati delle intestazioni HTTP. Inoltre, il metodo push del server in HTTP/2 consente al server di inviare più risposte per una singola richiesta.
Il supporto HTTP/2 non è incluso in Ubuntu 16.04, né con nginx né con Apache perché questa funzionalità è considerata sperimentale dal progetto Apache httpd upstream, quindi non è possibile abilitarla su un VPS Ubuntu 14.04 utilizzando il comando a2enmod:
a2enmod http2 ERROR: Module http2 does not exist!
Il supporto HTTP/2 dovrebbe essere abilitato in Ubuntu 16.04 dopo che Apache httpd upstream considera questo supporto non sperimentale.
Fortunatamente, il modulo Http2 è incluso nel sorgente, quindi segui questi passaggi per abilitare il supporto HTTP/2 su Server web Apache:
1. Aggiungi URI di origine
Aggiungi gli URI di origine al file sources.list se non è già stato fatto:
vi /etc/apt/sources.list
aggiungi le seguenti righe alla fine:
deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse
2. Scarica gli elenchi dei pacchetti dai repository
Esegui il comando "apt-get update" per scaricare gli elenchi dei pacchetti dai repository e aggiornali per ottenere informazioni sulle versioni più recenti dei pacchetti, quindi aggiorna i pacchetti del sistema operativo Ubuntu 16.04 usando il comando "apt-get upgrade":
apt-get update apt-get upgrade
3. Installa i prerequisiti
Installa i prerequisiti richiesti:
apt-get install curl devscripts build-essential fakeroot
4. Crea nuovo utente
Crea un nuovo utente o passa a un account utente esistente:
sudo adduser <username> sudo su <username>
Sostituisci
5. Installa libnghttp2-dev
Installa il pacchetto libnghttp2-dev:
[user]$ cd ~ [user]$ sudo apt-get install libnghttp2-dev [user]$ mkdir apache2 [user]$ cd apache2
6. Scarica i sorgenti di apache2
Scarica i sorgenti di apache2 sul tuo server e compilali:
[user]$ apt-get source apache2 [user]$ sudo apt-get build-dep apache2 [user]$ cd apache-2.4.18 [user]$ sudo apt-get install curl devscripts build-essential fakeroot [user]$ fakeroot debian/rules binary [user]$ sudo cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/ [user]$ exit
7. Carica il modulo HTTP/2.
Carica il modulo HTTP/2. Crea un file /etc/apache2/mods-available/http2.load e aggiungi le seguenti righe:
LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so <IfModule http2_module> LogLevel http2:info </IfModule>
8. Abilita e configura il modulo Apache HTTP2
Abilita il modulo http2:
a2enmod http2
Aggiungi "Protocolli h2 http/1.1" a ciascun host virtuale basato su SSL. Ad esempio, modifica il file di configurazione default-ssl:
vi /etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost ServerName your-domain.com Protocols h2 http/1.1 DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
In alternativa, aggiungi 'Protocols h2 http/1.1' alla configurazione principale di Apache per abilitare http2 su tutti i siti Web:
vi /etc/apache2/apache2.conf
Aggiungi questa riga alla fine:
Protocols h2 http/1.1
9. Riavvia il server web Apache
Riavvia Apache per rendere effettive le modifiche:
service apache2 restart
Questo è tutto. Il supporto HTTP/2 è stato abilitato sul tuo server web Apache.
Ovviamente non devi configurare Apache con HTTP/2 su Ubuntu 16.04, se utilizzi uno dei nostri servizi di hosting VPS ad alte prestazioni, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di configurare Apache con supporto HTTP/2 per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se ti è piaciuto questo post, su come configurare Apache con supporto HTTP/2 su Ubuntu 16.04, condividilo con i tuoi amici sui social network usando i pulsanti qui sotto, o semplicemente lascia una risposta qui sotto. Grazie.