GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come abilitare HTTP/2 in Apache Web Server su Ubuntu e Debian

Protocollo di trasferimento ipertestuale versione 2 (HTTP/2 ) è l'ultima versione del protocollo HTTP, pubblicata come standard IETF in RFC 7540 nel 2015. Il focus del protocollo è sulle prestazioni; in particolare, la latenza percepita dall'utente finale, la rete e l'utilizzo 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. Apache ha il supporto HTTP/2 dalla versione 2.4.17. In questo tutorial, presumo che tu abbia già una configurazione TLS funzionante e che tu abbia la versione Apache richiesta installata sulla tua distribuzione Linux preferita e che tu sappia come usare Let's Encrypt, o sai come rilasciare un certificato autofirmato.

Questo tutorial è stato testato su Debian 10 , Debian 9, Ubuntu 20.04 LTS, e Ubuntu 18.04 LTS.

Prerequisiti

Per abilitare HTTP/2 in Apache dovrai soddisfare i seguenti requisiti:

  • Per prima cosa, devi abilitare HTTPS sul tuo server. Tutti i principali browser consentono di utilizzare HTTP/2 solo su HTTPS. Inoltre, TLS  è richiesta la versione del protocollo>=1.2 con moderne suite di crittografia.
  • Quindi, assicurati di eseguire Apache 2.4.17 o superiore perché HTTP/2 è supportato da questa versione in poi.
  • Inoltre, assicurati che il tuo client/browser supporti effettivamente HTTP/2.

Disabilita il modulo mod_php

Prima di poter passare il modulo Apache MPM nel passaggio successivo a mpm_event, dovremo disabilitare la vecchia modalità mod_php e sostituirla con la più moderna modalità PHP-FPM. I comandi differiscono per ogni versione del sistema operativo, utilizza quelli che corrispondono al tuo sistema installato.

Ubuntu 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

Debian 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

Ubuntu 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

Debian 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

Abilita un MPM Apache compatibile con HTTP/2

Per impostazione predefinita, Apache utilizzerà l'MPM prefork. Questo MPM non è compatibile con HTTP/2, quindi dovremo sostituirlo con il più moderno modulo mpm_event.

Innanzitutto, disabilitiamo il modulo mpm_prefork:

sudo a2dismod mpm_prefork

Quindi abilitiamo il modulo mpm_event:

sudo a2enmod mpm_event

Abilita il supporto HTTP/2 in Apache

Per far funzionare HTTP/2 su Apache è necessario abilitare e caricare i moduli SSL e HTTP/2. Per farlo, puoi eseguire quanto segue nel tuo terminale:

sudo a2enmod ssl

e poi

sudo a2enmod http2

Per attivare questi nuovi moduli, devi eseguire:

sudo systemctl restart apache2

Dopo aver abilitato e caricato i moduli Apache necessari, vai alla directory di configurazione di Apache e modifica la configurazione di Apache.

Per abilitare HTTP/2 sul tuo server web Apache, aggiungi una delle seguenti opzioni alla tua configurazione globale di Apache o all'interno di un particolare host virtuale.

Protocols h2 http/1.1

Ecco la configurazione minima del server virtuale che può essere utilizzata per abilitare HTTP/2 in alcuni host virtuali:

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

Per verificare se il tuo server supporta HTTP/2, puoi utilizzare gli strumenti di sviluppo del browser. Di seguito sono gli screenshot dei browser Google Chrome e Apple Safari che mostrano HTTP/2 in azione su https://example.com dominio.

Chrome

Safari

  • RFC 7540
  • HTTP/2

Ubuntu
  1. Come rimuovere il server Web Apache da Ubuntu

  2. Come installare e configurare Nginx su Ubuntu 18.04 / Debian 9

  3. Come abilitare mod_rewrite sul server Web Ubuntu?

  4. Come installare e configurare il server Web Apache su Ubuntu 13.10

  5. Come abilitare HTTP/2 in Nginx su Ubuntu e CentOS

Come installare Apache Web Server su Ubuntu 20.04

Come installare e configurare Apache Spark su Ubuntu/Debian

Come abilitare HTTP/2 in Apache su sistema Linux

Come aggiungere il supporto PHP-FPM su Apache e Nginx Web Server su Ubuntu 18.04

Come installare e configurare un server Web LAMP su Ubuntu 18.04

Come abilitare HTTP/2 con Apache in Ubuntu