Installer HTTP2 sur un serveur Apache2 - DEBIAN

L'HTTP/2 est la dernière évolution du protocole HTTP (HyperText Transfer Protocol) sur lequel repose le fonctionnement du World Wide Web. Il a pour objectif de rendre la navigation Internet plus fluide. Il remplace le protocole plus ancien HTTP1.x.

Pour faire simple, les requêtes en HTTP2 peuvent être envoyées en rafale durant la même connexion via un multiplexage et les réponses peuvent être reçu dans le désordre. Cela réduit fortement le besoins de connexions multiples.

Nous verrons donc dans ce tutoriel la façon d'activer le protocole HTTP2 sur votre Apache2 sous Debian.

Tous les navigateurs ne supportent pas le HTTP2. Les navigateurs anciens accéderont toujours à votre site via HTTP 1.x.. et il est a noté que HTTP2 requiert aussi un certificat SSL valide.


Pré-requis

Ce tutoriel fonctionne sous Debian 9,10 et 11. Il est nécessaire d'avoir Apache2 en version 2.4 d'installer sur votre serveur.
Cela n'a pas été testé mais cela doit aussi fonctionner sur d'autres distributions Linux comme Ubuntu.

Les lignes de commande sont tapées dans une console en tant que root.

Difficulté
Très facile

Activer HTTP2 sous Apache2

Pour commencer nous activons le module http2 sous Apache2 avec la commande a2enmod. Le module est visible dans le répertoire /etc/apache2/mods-available. Cette commande va créé un lien symbolique dans le répertoire stockant les modules actifs sous votre Apache2 /etc/apache2/mods-enabled.

/usr/sbin/a2enmod rewrite


Ensuite nous précisons à Apache2 que le module est bien activé en modifiant le fichier /etc/apache2/mods-available/http2.load

echo "<IfModule http2_module>
   LogLevel http2:info
</IfModule>" >> /etc/apache2/mods-available/http2.load


Cette ligne inscrit le contenu se trouvant entre les " à la fin du fichier /etc/apache2/mods-available/http2.load grâce à l'utilisation de ». Si nous aurions mis un seul >, nous aurions écraser le contenu du fichier pour le remplacer.

Ensuite il n'y a plus qu'à relancer le serveur Apache2 avec la commande qui va bien.

systemctl restart apache2


Et voilà, vote serveur web gère maintenant le protocole HTTP2.

Pour finir

Il reste tout de même une étape, il faut spécifier dans vos VirtualHost de privilégier l'utilisation de ce protocole.
Il suffit de rajouter la ligne suivante :

   Protocols h2 h2c http/1.1


Ce qui donnera un exemple du genre :

<VirtualHost *:443>
        ServerName serveur.fr
        ServerAdmin admin@serveur.fr
        Protocols h2 h2c http/1.1
        DocumentRoot /var/www/

Notes de version

  • [28/10/2021] : Création de l'article

Auteurs et sources