Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Installer et activer HTTP2 sur Apache2

Vous connaissez sans doute le HTTP2 qui résout pas mal de soucis qu’avait le HTTP 1.1 sorti en 1999. Pour résumer, les requêtes en HTTP2 peuvent être envoyées en rafale durant la même connexion TCP (multiplexage) et les réponses peuvent être reçues dans le désordre, éliminant ce besoin de connexions multiples entre 1 client et le serveur. Le client (donc le navigateur) peut indiquer au serveur quelles sont les ressources qui sont le plus importantes pour lui, afin de les recevoir en priorité. Les entêtes HTTP sont compressées, et le serveur peut envoyer des ressources au client, même si celui-ci ne lui a rien demandé.

Bref, une bonne avancée depuis le HTTP qui permet d’accélérer vraiment le web. Voici donc un modeste article qui va vous expliquer comment l’activer sur votre serveur Apache.

Mais avant de commencer, vous devez garder en tête que tous les navigateurs ne supportent pas le HTTP2. Les navigateurs anciens accéderont toujours à votre site via HTTP 1.x.. HTTP2 requiert aussi un certificat SSL valide, car accessible uniquement via la couche TLS. Enfin, le multiplexage s’active site par site.

Je vais donc commencer par Apache et partir du principe que vous êtes comme d’habitude sous Ubuntu. Moi je suis en Ubuntu 16.04 et quand je tente d’activer le module Apache http2 avec la commande :

sudo a2enmod http2

J’obtiens ceci  comme message :

 

HTTP2 étant considéré encore comme quelque chose d’expérimental sous Ubuntu 16.04, il va falloir ajouter quelques dépôts Xenial dans votre sources.list :

sudo nano /etc/apt/sources.list

et ajoutez les lignes suivantes à la fin du fichier :

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

Faites ensuite un

sudo apt-get update

sudo apt-get upgrade

Ensuite, on va installer la lib http2 et télécharger les sources d’Apache et compiler tout ça :

sudo apt-get install libnghttp2-dev

mkdir apache2

cd apache2

sudo apt-get source apache2

sudo apt-get build-dep apache2

cd apache-2.4.18

sudo fakeroot debian/rules binary

Et une fois que le module est compilé, copiez-le au bon endroit

sudo cp ./debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/

Ensuite il faut signifier à Apache l’existence de ce module. Pour cela, éditez le fichier :

sudo nano /etc/apache2/mods-available/http2.load

Et ajoutez-y la conf suivante :

LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so

<IfModule http2_module>

LogLevel http2:info

</IfModule>

Et maintenant on peut activer le fameux module http2 :

sudo a2enmod http2

 

 

Maintenant, il faut ajouter le protocole http2 pour chaque virtualhost en SSL. Par exemple pour le virtual host par défaut en SSL, éditez le fichier :

sudo nano /etc/apache2/sites-enabled/default-ssl.conf

Et ajoutez-y la ligne

Protocols h2 http/1.1

Comme ceci :

 

 

 

A faire partout là où c’est nécessaire (sur les sites en SSL). Ou alors si vraiment vous êtes sûr de votre coup, vous pouvez activer http2 sur l’ensemble de vos sites en éditant le fichier

sudo nano /etc/apache2/apache2.conf

Et en y ajoutant la ligne

Protocols h2 http/1.1

Une fois que tout cela est fait, il ne vous reste plus qu’à relancer Apache avec la commande suivante :

service apache2 restart

Et voilà, votre serveur supporte le http2 et pour tester vos sites, vous pouvez le faire via cet outil.


Sélection Logitech – Jusqu’à -55% du 16 au 22 septembre.

Souris, claviers ou encore webcams

Du 16 septembre au 22 septembre, Logitech équipe tous ceux qui veulent booster leurs rentrées avec du bon et nouveau matos

Tous les best sellers de la marque Suisse sont au rendez-vous, quelque soit la catégorie, bureautique, work ou gaming.
Retrover les casque Logitech G, les claviers Keys To Go ou MX keys ou encore les souris verticales MX Masters en promos.

En Savoir +



Réponses notables

  1. Je te conseille de lire l’article du MISC n°88 (“HTTP2 attention peinture fraiche”) qui est plutôt bien fait et qui peut faire un peu relativiser sur HTTP2 :wink:

    EDIT : Magazine payant. Lire l’article est donc conditionné à disposer d’un abonnement au MISC ou la possibilité de se procurer l’article.

  2. Bonjour, y aurait-il un tuto pour activer le http2 sur un hébergement partagé?

  3. Sur un mutualisé ? Pas possible, il faut voir ça avec ton hébergeur

  4. Diki says:

    C’est pour cette raison je suppose que certains sites Pro sont passés d’Apache vers Nginx: WordPress, Github, SourceForge ou TorrentReactor

    Côté perf tout dépend du socle matériel déployé autour du serveur Web dédié ou pas ET avec quel niveau de charge php il a été prévu initialement… En mode php pur, Apache est plus approprié évidemment. Au regard des tests que j’avais réalisé il y a quelques temps déjà, nginx est relativement plus performant en terme de requêtes supportées par le serveur (20 à 30 % de gain env). En revanche, en terme de “Sécurité” Apache vs Nginx, il n’y a pas photo, Apache est largement meilleur !

    Quelqu’un aurait-il testé un couple NNginx avec mise en cache en frontal et Apache en mod_php ?? :grin:

Continuer la discussion sur Korben Communauté

4 commentaires supplémentaires dans les réponses

Participants