Comment activer HTTP/2 pour apache2 sur Debian ou Ubuntu ?
Le http/2 c'est quoi ?
HTTP/2 est la deuxième version majeure du protocole Hypertext Transfer Protocol, utilisé par le web pour la communication entre les navigateurs web et les serveurs. Conçu pour améliorer les performances du web, HTTP/2 introduit plusieurs optimisations par rapport à son prédécesseur HTTP/1.1. Ces améliorations incluent le multiplexage, permettant à plusieurs requêtes de s'exécuter en parallèle sur une seule connexion TCP, réduisant ainsi la latence et améliorant significativement la vitesse de chargement des pages. Il introduit également la compression des en-têtes pour réduire la surcharge de données et le serveur push, qui permet aux serveurs d'envoyer des ressources au navigateur avant même qu'elles ne soient demandées, améliorant ainsi l'efficience dans le chargement des ressources. Grâce à ces avancées, HTTP/2 facilite une expérience utilisateur plus rapide et plus fluide sur le web, tout en réduisant la consommation de bande passante et les ressources serveur.
Prérequis
- Serveur Debian (Stretch ou plus récent recommandé).
- Droits d'administrateur (accès root ou un utilisateur avec des privilèges sudo).
Étape 1 : Mise à jour du système
Commencez par mettre à jour votre système Debian pour vous assurer que tous vos packages sont à jour.
sudo apt update && sudo apt upgrade
Étape 2 : Activer SSL et HTTP/2
Activez le module SSL et HTTP/2 d'Apache pour permettre les connexions sécurisées et le protocole HTTP/2.
sudo a2enmod ssl sudo a2enmod http2 sudo service apache2 restart
Étape 3 : Configurer Apache pour HTTP/2
Ajoutez Protocols h2 http/1.1
à la configuration SSL de votre site pour activer HTTP/2.
- Ouvrez le fichier de configuration de votre site avec un éditeur de texte.
sudo nano /etc/apache2/sites-available/votre-domaine.com.conf
- Ajoutez la ligne suivante dans le bloc <VirtualHost *:443> :
Protocols h2 http/1.1
- Sauvegardez et fermez le fichier.
Étape 4 : Passer à MPM Event
Désactivez le MPM précédent et activez le MPM event pour une meilleure gestion des connexions.
-
Désactivez le MPM actuel (si ce n'est pas event).
sudo a2dismod mpm_prefork # Ou mpm_worker selon votre configuration
-
Activez le MPM event.
sudo a2enmod mpm_event
Étape 5 : Désactiver mod_php et installer PHP-FPM
Pour utiliser efficacement le MPM event, désactivez mod_php et utilisez PHP-FPM.
-
Désactivez mod_php.
sudo a2dismod phpX.X # Remplacez X.X par la version de PHP installée
-
Installez PHP-FPM.
sudo apt install phpX.X-fpm # Assurez-vous que la version correspond à votre version de PHP
-
Activez le proxy pour PHP-FPM.
sudo a2enmod proxy_fcgi setenvif sudo a2enconf phpX.X-fpm
-
Redémarrez Apache et PHP-FPM.
sudo systemctl restart apache2 sudo systemctl restart phpX.X-fpm
Étape 6 : Tester la configuration
-
Testez HTTP/2 avec curl ou un outil en ligne.
curl -I --http2 https://votre-domaine.com
-
Vérifiez que PHP-FPM fonctionne en créant un fichier
info.php
dans le répertoire de votre site et en y accédant via votre navigateur.
Vous avez maintenant un serveur Apache sur Debian configuré pour utiliser HTTP/2 avec le MPM event
et PHP-FPM pour une performance optimale. Cette configuration devrait offrir une meilleure gestion des ressources et une expérience utilisateur améliorée grâce à des temps de chargement de page réduits.
Bien que ce tutoriel a été réalisé pour les système à base d'Ubuntu ou de Debian, le principe restra le même pour les autres distributions.
Si vous avez des difficultés n'hésitez pas à poster un commentaire, je ne manquerai pas de vous aider :)