Comment activer HTTP / 2 à Apache sur Ubuntu

Comment activer HTTP / 2 à Apache sur Ubuntu

Depuis la création du World Wide Web (www), le Http Le protocole a évolué au fil des ans pour fournir du contenu numérique sécurisé et rapide sur Internet.

La version la plus utilisée est Http 1.1 Et bien qu'il emballe des améliorations des fonctionnalités et des optimisations de performances pour répondre aux lacunes des versions antérieures, il est en deçà de quelques autres fonctionnalités saillantes qui ont été abordées par la Http / 2.

Quelles sont les limites de HTTP / 1.1?

Le Http / 1.1 Le protocole est chargé des lacunes suivantes qui le rendent moins idéal, en particulier lors de l'exécution de serveurs Web à haute trafic:

  1. Retards dans le chargement des pages Web en raison de longs en-têtes HTTP.
  2. Http / 1.1 est en mesure d'envoyer une demande pour chaque fichier par connexion TCP.
  3. Étant donné que Http / 1.1 traite une demande pour chaque connexion TCP, les navigateurs sont obligés d'envoyer un déluge de connexions TCP parallèles pour traiter simultanément les demandes. Cela conduit à la congestion TCP et finalement.

Les problèmes susmentionnés ont souvent conduit à une dégradation des performances et à des frais généraux élevés dans l'utilisation de la bande passante. Http / 2 est entré dans l'image pour résoudre ces problèmes et est maintenant l'avenir des protocoles HTTP.

Avantages de l'utilisation de HTTP / 2

Il offre les avantages suivants:

  1. Compression de l'en-tête qui minimise les demandes des clients et réduit ainsi la consommation de bande passante. L'effet résultant est des vitesses de chargement de page rapide.
  2. Multiplexage de plusieurs demandes sur une connexion TCP. Le serveur et le client peuvent décomposer une demande HTTP en plusieurs images et les regrouper à l'autre extrémité.
  3. Des performances Web plus rapides qui conduisent par conséquent à un meilleur classement SEO.
  4. Amélioration de la sécurité car la plupart des navigateurs grand public chargent HTTP / 2 sur HTTPS.
  5. HTTP / 2 est considéré comme plus convivial grâce à la fonctionnalité de compression d'en-tête.

Cela dit, nous allons activer Http / 2 sur Apache sur Ubuntu 20.04 LTS et Ubuntu 18.04 LTS.

Conditions préalables:

Avant de commencer, assurez-vous d'activer Https sur le serveur Web Apache avant d'activer Http / 2. C'est parce que tous les navigateurs Web traditionnels prennent en charge Http / 2 sur Https. J'ai un nom de domaine indiqué une instance sur Ubuntu 20.04 qui exécute le serveur Apache sécurisé à l'aide du certificat Let's Encrypt.

Aussi, il est recommandé que vous ayez Apache 2.4.26 et des versions ultérieures pour les serveurs de production ayant l'intention de passer à Http / 2.

Pour vérifier la version de Apache vous exécutez, exécutez la commande:

$ apache2 -v 
Vérifiez la version Apache dans Ubuntu

À partir de la sortie, vous pouvez voir que nous utilisons la dernière version, qui est Apache 2.4.41 Au moment de rédiger cet article.

Activer HTTP / 2 sur un hôte virtuel Apache

Pour commencer, confirmez d'abord que le serveur Web fonctionne Http / 1.1. Vous pouvez le faire sur un navigateur en ouvrant la section des outils de développeur sur Google Chrome en utilisant le Ctrl + shift + i combinaison. Clique sur le 'Réseau'Tab et localisez le'Protocole' colonne.

Confirmer la version du protocole HTTP

Ensuite, activez le Http / 2 module sur Ubuntu En exécutant la commande suivante.

$ sudo a2enmod http2 
Activer HTTP / 2 sur Ubuntu

Ensuite, localisez et modifiez votre SSL Fichier hôte virtuel, si vous avez activé HTTPS en utilisant Escryptons, Un nouveau fichier est créé avec un le-SSL.confli suffixe.

$ sudo vim / etc / apache2 / sites-compatible / your-domain-name-le-ssl.confli 

Insérer la directive ci-dessous après le étiqueter.

Protocoles H2 http / 1.1 
Activer HTTP / 2 sur Apache

Pour enregistrer les modifications, redémarrez Apache Webserver.

$ sudo systemctl redémarrer apache2 

Pour vérifier si Http / 2 est activé, récupérez les en-têtes HTTP en utilisant la commande Curl suivante comme affiche.

$ curl -i --http2 -s https: // domaine.com / | grep http 
Vérifiez la prise en charge de HTTP / 2 dans Apache

Vous devriez afficher la sortie.

HTTP / 2 200 

Sur le navigateur, rechargez votre site. Revenez ensuite aux outils du développeur et confirmez HTTP / 2 noté par le h2 étiqueter sur le 'Protocole' colonne.

Confirmer la version du protocole HTTP / 2

Lorsque vous utilisez le module mod_php avec Apache

Si vous courez Apache aux côtés du mod_php module, vous devez passer à Php-fpm. C'est parce que le mod_php Le module utilise le préfork MPM module qui n'est pas pris en charge par Http / 2. Vous devez désinstaller le préferm MPM et passer au mpm_event module qui sera pris en charge par Http / 2.

Si vous utilisez le Php 7.4 mod_php Le module, par exemple, le désactivez comme indiqué:

$ sudo a2dismod php7.4 
Désactiver le module MOD_PHP

Par la suite, désactivez le préfiket MPM module.

$ sudo a2dismod mpm_prefork 
Désactiver les MPM de la préfiche à Apache

Après avoir désactivé les modules, ensuite, activez le Événement MPM, Fast_cgi, et setenvif modules comme indiqué.

$ sudo a2enmod mpm_event proxy_fcgi setenvif 
Activer l'événement MPM dans Apache

Installez PHP-FPM sur Ubuntu

Ensuite, installez et démarrez Php-fpm comme montré.

$ sudo apt installer php7.4-fpm $ sudo systemctl start php7.4-FPM 

Ensuite, activez Php-fpm Pour commencer à l'heure du démarrage.

$ sudo systemctl activer Php7.4-FPM 

Ensuite, activez Php-fpm En tant que gestionnaire PHP d'Apache et redémarrez le serveur Web Apache pour les modifications à effectuer.

$ sudo a2enconf php7.4-FPM 

Activer la prise en charge HTTP / 2 dans Apache Ubuntu

Ensuite, activez le module HTTP / 2 comme avant.

$ sudo a2enmod http2 

Redémarrez Apache pour synchroniser tous les changements.

$ sudo systemctl redémarrer apache2 

Enfin, vous pouvez tester si votre serveur utilise le Http / 2 protocole utilisant la commande curl comme indiqué.

$ curl -i --http2 -s https: // domaine.com / | grep http 
Vérifiez le protocole HTTP / 2 dans Apache

Vous pouvez également choisir d'utiliser les outils du développeur sur le Google Chrome navigateur à vérifier comme documenté précédemment. Nous devons la fin de ce guide, nous espérons que vous avez trouvé les informations précieuses et que vous pouvez activer confortablement Http / 2 sur Apache avec facilité.