GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment activer HTTP/2 dans Apache Web Server sur Ubuntu et Debian

Protocole de transfert hypertexte version 2 (HTTP/2 ) est la dernière version du protocole HTTP, publiée en tant que norme IETF dans la RFC 7540 en 2015. Le protocole se concentre sur les performances; plus précisément, la latence perçue par l'utilisateur final, le réseau et l'utilisation des ressources du serveur. L'un des principaux objectifs est de permettre l'utilisation d'une seule connexion entre les navigateurs et un site Web. Le protocole est rétrocompatible, de sorte que les méthodes HTTP, les codes d'état et la sémantique sont les mêmes que pour les versions précédentes du protocole. Apache prend en charge HTTP/2 depuis la version 2.4.17. Dans ce didacticiel, je vais supposer que vous disposez déjà d'une configuration TLS fonctionnelle et que la version Apache requise est installée sur la distribution Linux de votre choix, et que vous savez comment utiliser Let's Encrypt, ou vous savez comment émettre un certificat auto-signé.

Ce tutoriel a été testé sur Debian 10 , Debian 9, Ubuntu 20.04 LTS, et Ubuntu 18.04 LTS.

Prérequis

Pour activer HTTP/2 dans Apache, vous devez remplir les conditions suivantes :

  • Tout d'abord, vous devez activer HTTPS sur votre serveur. Tous les principaux navigateurs autorisent l'utilisation de HTTP/2 uniquement sur HTTPS. En outre, TLS  la version du protocole >= 1.2 avec des suites de chiffrement modernes est requise.
  • Ensuite, assurez-vous que vous exécutez Apache 2.4.17 ou supérieur, car HTTP/2 est pris en charge à partir de cette version et des versions ultérieures.
  • Assurez-vous également que votre client/navigateur prend réellement en charge HTTP/2.

Désactiver le module mod_php

Avant de pouvoir basculer le module Apache MPM à l'étape suivante vers mpm_event, nous devrons désactiver l'ancien mode mod_php et le remplacer par le mode PHP-FPM plus moderne. Les commandes diffèrent pour chaque version du système d'exploitation, veuillez utiliser celles qui correspondent à votre système installé.

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

Activer un Apache MPM compatible avec HTTP/2

Par défaut, Apache utilisera le préfork MPM. Ce MPM n'est pas compatible avec HTTP/2, nous devrons donc le remplacer par le module mpm_event plus moderne.

Tout d'abord, nous désactivons le module mpm_prefork :

sudo a2dismod mpm_prefork

Ensuite, nous activons le module mpm_event :

sudo a2enmod mpm_event

Activer la prise en charge HTTP/2 dans Apache

Pour que HTTP/2 fonctionne sur Apache, vous devez activer et charger les modules SSL et HTTP/2. Pour ce faire, vous pouvez exécuter ce qui suit dans votre terminal :

sudo a2enmod ssl

puis

sudo a2enmod http2

Pour activer ces nouveaux modules, vous devez exécuter :

sudo systemctl restart apache2

Après avoir activé et chargé les modules Apache nécessaires, accédez à votre répertoire de configuration Apache et modifiez la configuration Apache.

Pour activer HTTP/2 sur votre serveur Web Apache, ajoutez l'un des éléments suivants à votre configuration Apache globale ou à l'intérieur d'un hôte virtuel particulier.

Protocols h2 http/1.1

Voici la configuration minimale du serveur virtuel qui peut être utilisée pour activer HTTP/2 dans certains hôtes virtuels :

<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>

Pour vérifier si votre serveur est compatible avec HTTP/2, vous pouvez utiliser les outils de développement de votre navigateur. Vous trouverez ci-dessous des captures d'écran des navigateurs Google Chrome et Apple Safari qui montrent HTTP/2 en action sur https://example.com domaine.

Chrome

Safari

  • RFC 7540
  • HTTP/2

Ubuntu
  1. Comment supprimer le serveur Web Apache d'Ubuntu

  2. Comment installer et configurer Nginx sur Ubuntu 18.04 / Debian 9

  3. Comment activer mod_rewrite sur le serveur Web Ubuntu ?

  4. Comment installer et configurer le serveur Web Apache sur Ubuntu 13.10

  5. Comment activer HTTP/2 dans Nginx sur Ubuntu et CentOS

Comment installer le serveur Web Apache sur Ubuntu 20.04

Comment installer et configurer Apache Spark sur Ubuntu/Debian

Comment activer HTTP/2 dans Apache sur le système Linux

Comment ajouter la prise en charge de PHP-FPM sur Apache et Nginx Web Server sur Ubuntu 18.04

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04

Comment activer HTTP/2 avec Apache dans Ubuntu