Mise en place HTTP2 avec Nginx

De Ikoula Wiki
Révision datée du 8 décembre 2020 à 16:58 par Afoiselle43363 (discussion | contributions) (Page créée avec « <span data-link_translate="he"></span><span data-link_translate="ro"></span><span data-link_translate="ru"></span><span data-link_translate="pl"></span><span data-link_tra... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Jump to navigation Jump to search

Introduction

HTTP2 (HTTP/2.0) ou HyperText Transfert Protocol/2 est une version majeure du protocole réseau HTTP utilisé sur le web.
Dans cette article, nous allons voir comment mettre en place le protocole HTTP2 avec Nginx et ainsi permettre a vos différents sites de fonctionner avec le protocole HTTP2.

Pré-requis

Voici les différents pré-requis pour la mise en place du protocole HTTP2 sous Nginx:
- Un installation fonctionnel de Nginx version 1.9.5 ou plus élevé avec le module ngx_http_v2_module.
- Un certificat SSL valide pour votre/vos site(s), si vous n'en avez pas vous pouvez obtenir un certificat SSL gratuit via Let's Encrypt ou alors vous avez la possibilité de commander un certificat SSL sur notre site.

Installation de HTTP2

Partons du principe que Nginx est déjà installer sur votre serveur, vous allez donc devoir vérifier que le module ngx_http_v2_module est également installé en exécutant la commande suivante:

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Voici le retour de la commande précédente lorsque le module est correctement installé:

invalid directive "%V": ngx_http_spdy_module was superseded by ngx_http_v2_module
invalid parameter "spdy": ngx_http_spdy_module was superseded by ngx_http_v2_module
ngx_http_v2_module
ngx_http_v2_module

La mise en place de HTTP2 s'effectue au niveau de la partie HTTPS de vos différents vhost Nginx.
Modifier donc le fichier de configuration de votre site afin de mettre en place pour ce dernier le protocole HTTP2. Pour Debian, les fichiers de configurations de vos différents sites se situent généralement dans le dossier /etc/nginx/sites-available/
Activer directement la prise en charge du protocole HTTP2 dans la configuration de votre site en ajoutant simplement le paramètre suivant a votre/vos directive(s) listen (pour la partie HTTPS) comme ci dessous:

listen 443 ssl http2;

Voici un exemple de configuration simple pour la partie https de votre vhost Nginx:

server {
    listen 443 ssl http2;
    root /var/www/exemple.com;
    index index.php index.html index.htm;
    server_name exemple.com www.exemple.com;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
    # Fichiers de logs:
    error_log /var/log/nginx/exemple.com.error.log;
    access_log /var/log/nginx/exemple.com.access.log;

ssl_certificate /etc/letsencrypt/live/exemple.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exemple.com/privkey.pem; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

Vérifiez ensuite la syntaxe de votre configuration et si cette dernière est correcte vous pouvez redémarrer Nginx:

nginx -t
systemctl restart nginx

Ouvrez ensuite votre navigateur web afin de vérifier la bonne prise en charge de votre configuration HTTP2 pour votre site.
Une fois sur votre site, accédez à l’outil de développement en appuyant sur F12 puis allez l’onglet Network cochez disable cache et rechargez la page de voter site.
Vérifiez les protocoles que votre site utilise (si vous ne voyez pas l'en-tête Protocol, cliquez avec le bouton droit sur l'un des en-têtes, par exemple Nom, puis cochez Protocol dans la liste pour l'afficher sous forme d'en-tête).
Si votre site fonctionne sur http1, sous protocol, vous verrez indiquer http/1.1 comme dans la capture d’écran ci-dessous :
HTTP1

Si votre modification pour http2 a bien été prise en compte et que votre navigateur web est compatible, vous verrez indiquer h2 comme dans la capture ci-dessous:
HTTP2

Conclusion

Dans cet article, vous venez donc de voir la mise en place du protocole HTTP2 avec Nginx.



Cet article vous a semblé utile ?

0



Vous n'êtes pas autorisé à publier de commentaire.