Aggiornare a Debian 9 Stretch ed attivare HTTP/2

Alessio Cecchi
11/09/2017

A Giugno 2017 è uscita la versione stabile di Debian 9. In Qboxmail abbiamo iniziato ad aggiornare i nostri server per beneficiare di alcuni vantaggi di questa versione, in particolare del supporto a HTTP/2 presente in Apache ed Nginx.

HTTP/2 è l’evoluzione del protocollo HTTP 1.1, rilasciato nel 1999, che permette di velocizzare di molto il caricamento di siti web ricchi di contenuti. HTTP/2, grazie ad una tecnica chiamata “multiplexing” consente al browser di ridurre drasticamente il numero delle sessioni aperte verso il web server per scaricare tutti i contenuti che compongono un sito web, mentre HTTP 1.1 per ogni immagine che compone un sito web deve “negoziare, aprire, trasfere, chiudere” una sessione. Per chi volesse approfondire rimandiamo alla pagina dedicata ad HTTP/2 su Wikipedia.

Eseguire aggiornamenti di versione in Debian è sempre stato uno dei suoi punti di forza, questa operazione tecnicamente si chiama “dist-upgrade” ed è presente anche in Ubuntu (essendo derivata da Debian). Ovviamente l’operazione di aggiornamento alla versione successiva è tanto più complessa quanti più software sono stati installati e configurati nel tempo. Per un dettaglio sul processo di aggiornamento in Debian vi consigliamo di leggere la guida ufficiale.

In questo articolo vi spiegheremo i passi necessari per aggiornare il sistema operativo. I singoli applicativi, sebbene vengano anche loro aggiornati potrebbero dover essere riconfigurati a parte. I comandi che trovate di seguito sono stati eseguiti su un server di test con Debian 8 ed Apache2 ed hanno il solo scopo di dimostrare la fattibilità dell’operazione.

Prima cosa da fare: aggiornare Debian 8

Prima di eseguire un dist-upgrade è necessario che il sistema di partenza sia correttamente aggiornato, per eseguire questa operazione bastano due semplici comandi:

  1. apt-get update
  2. apt-get upgrade

Questa è un operazione che dovrebbe essere eseguita costantemente per mantenere aggiornato, e quindi sicuro, il proprio server Debian.

Seconda cosa da fare: verificare che sia tutto in ordine

Un dist-upgrade può andare a buonf ine solo se il sistema di partenza è in ordine, ovvero se tutti i pacchetti sono nel corretto stato, non ci sono pacchetti in stato Hold e/o pacchetti rimossi ma configurazioni rimaste in giro. Con questi comandi possiamo identificare eventuali pacchetti da rivedere manualmente:

  1. dpkg –audit
  2. aptitude search “~ahold”
  3. aptitude search “~o”

Terzo: modifichiamo i repository da Jessie a Stretch e puliamo la cache locale dei pacchetti

  1. – sed -i ‘s/jessie/stretch/g’ /etc/apt/sources.list
  2. apt-get clean

Eseguiamo il vero upgrade di versione

Da qui in avanti sarà molto difficile tornare indietro, consigliamo di disporre di un backup del server e dei dati, eseguire queste azioni dentro uno “screen” perchè se cadesse la connessione potremmo riprenderle dal punto in cui le abbiamo perse.

Aggiorno i repository e vedo cosa sta per essere aggiornato:

  1. apt-get update
  2. apt list –upgradable

Inizio il verso processo di aggiornamento:

  1. apt-get upgrade
  2. apt-get dist-upgrade

Se tutto procederà regolarmente in qualche decina di minuti il nostro sistema sarà aggiornato. Al termine della procedura è possibile riavviare il server:

  1. reboot

Una volta tornato online il server possiamo verificare che stia effettivamente girando Debian 9

  1. uname -a
  2. cat /etc/debian_version

Possiamo infime rimuovere i pacchetti non più utilizzati con

  1. apt autoremove

A questo punto abbiamo a tutti gli effetti un server con Debian 9 Stretch.

Vediamo adesso come abilitare HTTP/2 nel nostro web server Apache. Infatti in Debian 9 è disponibile Apache 2.4.25 che include nativamente ed in versione stabile il supporto ad HTTP/2.

Abilitare HTTP/2 in questa versione di Apache è banale, bastano due soli comandi:

– a2enmod http2
– systemctl restart apache2

A questo punto il nuovo protocollo è abilitato ma non basta per far si che anche i nostri siti girino in questa modalità, è necessario infatti per ogni VirtualHost abilitare esplicitamente il protocollo aggiungendo all’interno della loro configurazione questa riga e riavviando apache:

– Protocols h2 h2c http/1.1
– systemctl restart apache2

Verificare che HTTP/2 sia effettivamente attivo

A questo punto è necessario verificare che il nuovo protocollo sia effettivamente attivo. Il primo tool che vi consiglio di utilizzare è online su https://tools.keycdn.com/http2-test.

La seconda soluzione è quella di installare una estensione per Chrome o Firefox che mostra un fulmine che si colora di blu quando il sito che stiamo navigando è servito via HTTP/2.

Non mi resta che augurarvi buon esperimento a tutti!

Utilizziamo i cookie per fornirti una migliore esperienza di navigazione, continuando ne accetti l’utilizzo. Per maggiori informazioni visita la pagina Privacy policy.

Accetta