Nous allons vous montrer comment configurer Apache avec HTTP/2. HTTP/2 est la première mise à jour majeure du protocole HTTP depuis 1997. L'objectif principal de HTTP/2 est de réduire la latence, de réduire le nombre total de connexions TCP et d'améliorer ainsi la vitesse de chargement des pages dans les navigateurs Web. HTTP/2 est rétrocompatible avec HTTP/1.1, toutes les sémantiques d'application de HTTP sont les mêmes, à l'exception du mode de transmission des données via une connexion TCP. HTTP/2 exploite le multiplexage et autorise les requêtes asynchrones (parallèles) et assure la compression des données des en-têtes HTTP. De plus, la méthode push du serveur dans HTTP/2 permet au serveur d'envoyer plusieurs réponses pour une seule requête.
Le support HTTP/2 n'est pas inclus dans Ubuntu 16.04, ni avec nginx ni avec Apache car cette fonctionnalité est considérée comme expérimentale par le projet amont Apache httpd, il n'est donc pas possible de l'activer sur un VPS Ubuntu 14.04 à l'aide de la commande a2enmod :
a2enmod http2 ERROR: Module http2 does not exist!
La prise en charge de HTTP/2 doit être activée dans Ubuntu 16.04 après que l'amont Apache httpd considère que cette prise en charge n'est pas expérimentale.
Heureusement, le module Http2 est inclus dans la source, suivez donc ces étapes pour activer la prise en charge de HTTP/2 sur Serveur Web Apache :
1. Ajouter des URI sources
Ajoutez les URI sources au fichier sources.list si ce n'est pas déjà fait :
vi /etc/apt/sources.list
ajoutez les lignes suivantes à la fin :
deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse
2. Téléchargez les listes de packages à partir des référentiels
Exécutez la commande « apt-get update » pour télécharger les listes de packages à partir des référentiels et mettez-les à jour pour obtenir des informations sur les dernières versions des packages, puis mettez à jour les packages du système d'exploitation Ubuntu 16.04 à l'aide de la commande « apt-get upgrade » :
apt-get update apt-get upgrade
3. Installer les pré-requis
Installez les pré-requis requis :
apt-get install curl devscripts build-essential fakeroot
4. Créer un nouvel utilisateur
Créez un nouvel utilisateur ou passez à un compte utilisateur existant :
sudo adduser <username> sudo su <username>
Remplacez
5. Installez libnghttp2-dev
Installez le paquet libnghttp2-dev :
[user]$ cd ~ [user]$ sudo apt-get install libnghttp2-dev [user]$ mkdir apache2 [user]$ cd apache2
6. Télécharger les sources apache2
Téléchargez les sources apache2 sur votre serveur et compilez-les :
[user]$ apt-get source apache2 [user]$ sudo apt-get build-dep apache2 [user]$ cd apache-2.4.18 [user]$ sudo apt-get install curl devscripts build-essential fakeroot [user]$ fakeroot debian/rules binary [user]$ sudo cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/ [user]$ exit
7. Chargez le module HTTP/2.
Chargez le module HTTP/2. Créez un fichier /etc/apache2/mods-available/http2.load et ajoutez les lignes suivantes :
LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so <IfModule http2_module> LogLevel http2:info </IfModule>
8. Activer et configurer le module Apache HTTP2
Activez le module http2 :
a2enmod http2
Ajoutez 'Protocoles h2 http/1.1' à chaque hôte virtuel basé sur SSL. Par exemple, modifiez le fichier de configuration default-ssl :
vi /etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost ServerName your-domain.com Protocols h2 http/1.1 DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
Ou ajoutez 'Protocoles h2 http/1.1' à la configuration principale d'Apache pour activer http2 sur tous les sites Web :
vi /etc/apache2/apache2.conf
Ajoutez cette ligne à la fin :
Protocols h2 http/1.1
9. Redémarrez le serveur Web Apache
Redémarrez Apache pour que les modifications prennent effet :
service apache2 restart
C'est ça. Le support HTTP/2 a été activé sur votre serveur Web Apache.
Bien sûr, vous n'êtes pas obligé de configurer Apache avec HTTP/2 sur Ubuntu 16.04, si vous utilisez l'un de nos services d'hébergement VPS haute performance, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de configurer Apache avec prise en charge HTTP/2 pour toi. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS. Si vous avez aimé cet article sur la configuration d'Apache avec le support HTTP/2 sur Ubuntu 16.04, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons ci-dessous, ou laissez simplement une réponse ci-dessous. Merci.