Différences entre versions de « Mise en place HTTP2 avec Apache2 »

De Ikoula Wiki
Jump to navigation Jump to search
Ligne 3 : Ligne 3 :
 
==Introduction== <!--T:1-->
 
==Introduction== <!--T:1-->
 
HTTP2 (HTTP/2.0) ou HyperText Transfert Protocol/2 est une version majeure du protocole réseau HTTP utilisé sur le web.<br/>
 
HTTP2 (HTTP/2.0) ou HyperText Transfert Protocol/2 est une version majeure du protocole réseau HTTP utilisé sur le web.<br/>
Dans cette article, nous allons voir comment mettre en place le protocole HTTP2 avec Nginx et ainsi permettre a vos différents sites de fonctionner avec le protocole HTTP2.<br/>
+
Dans cette article, nous allons voir comment mettre en place le protocole HTTP2 avec Apche2 et ainsi permettre a vos différents sites de fonctionner avec le protocole HTTP2.<br/>
  
 
==Pré-requis== <!--T:2-->
 
==Pré-requis== <!--T:2-->

Version du 8 décembre 2020 à 18:46

Introduction

HTTP2 (HTTP/2.0) ou HyperText Transfert Protocol/2 est une version majeure du protocole réseau HTTP utilisé sur le web.
Dans cette article, nous allons voir comment mettre en place le protocole HTTP2 avec Apche2 et ainsi permettre a vos différents sites de fonctionner avec le protocole HTTP2.

Pré-requis

Voici les différents pré-requis pour la mise en place du protocole HTTP2 sous Apache2:
- Un installation fonctionnel d'Apache version 2.4.17 ou plus élevé avec le module mpm_event
- La version TLS 1.2 ou supérieur installé et compatible sur votre serveur.
- Un certificat SSL valide pour votre/vos site(s), si vous n'en avez pas vous pouvez obtenir un certificat SSL gratuit via Let's Encrypt ou alors vous avez la possibilité de commander un certificat SSL sur notre site.

Installation de HTTP2

Avant de passer à l’installation du module http2 pour Apache, il faut d’abord dans un premier temps désactiver le module mpm_prefork et activer le module mpm_event avec php-fpm.
Installation de php-fpm version 7.3 qui est la version par défaut installé via le repos officiel de Debian 10 dans notre cas:

apt-get install php-fpm

Désactivation du module Apache si ce dernier était installé (par défaut l’installation d’Apache se fait via le module Apache):

a2dismod php7.3

Activation du module des modules SSL (si ce n’est pas déjà le cas) et du module proxy_fcgi:

a2enmod ssl proxy proxy_fcgi

Activation de php7.3-fpm.

a2enconf php7.3-fpm

Il faut ensuite procéder à l’activation de mpm_event à la place de mpm_prefork afin de procéder par la suite à l’activation du module http2 dans Apache.
Désactivation du module mpm_prefork puis activation de mpm_event:

a2dismod mpm_prefork
a2enmod mpm_event

Activation du module http2 pour Apache.

a2enmod http2

Redémarrer en suite le service Apache afin de bien prendre en compte l’activation des différents modules installés.

systemctl restart apache2

Une fois que les différents modules sont activés et recharger, ouvrez le fichier de configuration Apache de votre site afin de mettre en place le protocole http2 pour ce dernier. Pour Debian, les fichiers de configurations se situent dans le dossier /etc/apache2/sites-available/
Vous pouvez activer la prise en charge du protocole HTTP2 en ajoutant simplement dans la configuration de votre vhost la configuration suivante dans la partie https de votre vHost Apache. Vous pouvez également si vous le souhaitez appliquer cette modification dans le fichier de configuration globale d’Apache comme ci dessous:

Protocols h2 http/1.1

Voici un exemple de configuration simple pour la partie https de votre vhost Apache :

<VirtualHost *:443>
        ServerName exemple.com
        DocumentRoot /var/www/exemple.com
        <Directory /var/www/exemple.com>
                Options -Indexes +FollowSymLinks -MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/exemple.com.error.log
        CustomLog /var/log/apache2/exemple.com.access.log combined
        SSLEngine on
        SSLCertificateFile    /etc/letsencrypt/live/exemple.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/exemple.com/privkey.pem
        SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
        Protocols h2 http/1.1
</VirtualHost>

Vous pouvez également en profiter pour désactiver également au niveau du vhost Apacheles anciennes versions de SSL/TLS avec la directive suivante:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

Vérifiez ensuite la syntaxe de votre configuration et si cette dernière est correcte vous pouvez redémarrer Apache.

apache2ctl -t
systemctl restart apache2

Ouvrez ensuite votre navigateur web afin de vérifier la bonne prise en charge de votre configuration HTTP2 pour votre site.
Une fois sur votre site, accédez à l’outil de développement en appuyant sur F12 puis allez l’onglet Network cochez disable cache et rechargez la page de voter site.
Vérifiez les protocoles que votre site utilise (si vous ne voyez pas l'en-tête Protocol, cliquez avec le bouton droit sur l'un des en-têtes, par exemple Nom, puis cochez Protocol dans la liste pour l'afficher sous forme d'en-tête).
Si votre site fonctionne sur http1, sous protocol, vous verrez indiquer http/1.1 comme dans la capture d’écran ci-dessous :
Apache HTTP

Si votre modification pour http2 a bien été prise en compte et que votre navigateur web est compatible, vous verrez indiquer h2 comme dans la capture ci-dessous:
Apache HTTP2

Conclusion

Dans cet article, vous venez donc de voir la mise en place du protocole HTTP2 avec Apache2.




Cet article vous a semblé utile ?

0



Vous n'êtes pas autorisé à publier de commentaire.