Recherche de site Web

Comment activer HTTP/2.0 dans Nginx


HTTP/2 est le dernier standard pour le protocole HTTP, il est le successeur de HTTP/1.1. Il devient de plus en plus populaire en raison des avantages qu’il apporte aux développeurs Web et aux utilisateurs en général. Il fournit un transport optimisé pour la sémantique HTTP en prenant en charge toutes les fonctionnalités principales de HTTP/1.1, mais vise à être plus efficace de plusieurs manières.

Il existe de nombreuses fonctionnalités en plus de HTTP/2 qui vous offrent plus de possibilités pour optimiser un site/une application Web. Il offre un véritable multiplexage et concurrence, une meilleure compression d'en-tête (codage binaire), une meilleure priorisation, de meilleurs mécanismes de contrôle de flux et un nouveau mode d'interaction appelé « server push » qui permet à un serveur de transmettre des réponses à un client. . Sans oublier que HTTP/2 est basé sur le protocole expérimental SPDY de Google.

Par conséquent, l'objectif principal de HTTP/2 est de réduire le temps de chargement global des pages Web, améliorant ainsi les performances. Il se concentre également sur l'utilisation des ressources du réseau et du serveur ainsi que sur la sécurité car, avec HTTP/2, le cryptage SSL/TLS est obligatoire.

Dans cet article, vous apprendrez comment activer Nginx avec la prise en charge HTTP/2 sur les serveurs Linux.

Conditions préalables:

  • Une installation fonctionnelle de NGINX version 1.9.5 ou supérieure, construite avec le module ngx_http_v2_module.
  • Assurez-vous que votre site utilise un certificat SSL/TLS, si vous n'en avez pas, vous pouvez l'obtenir auprès de Let's Encrypt ou utiliser un certificat auto-signé.

Vous pouvez installer NGINX ou le déployer avec une pile LEMP comme décrit dans les guides suivants :

  • Comment installer Nginx sur CentOS 8
  • Comment installer le serveur LEMP sur CentOS 8
  • Comment installer NGINX, MySQL/MariaDB et PHP sur RHEL 8
  • Comment installer LEMP Stack avec PhpMyAdmin dans Ubuntu 20.04
  • Installez Nginx avec des blocs de serveur (hôtes virtuels) sur Debian 10
  • Comment utiliser Nginx comme équilibreur de charge HTTP sous Linux

Comment activer HTTP/2.0 dans NGINX

Si NGINX est installé, vérifiez qu'il a été construit avec le module ngx_http_v2_module en exécutant la commande suivante.

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

Une fois que vous avez un site Web/une application servi par NGINX avec HTTPS configuré, ouvrez le fichier de bloc de serveur virtuel de votre site Web (ou hôte virtuel) pour édition.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Vous pouvez activer la prise en charge HTTP/2 en ajoutant simplement le paramètre http2 à toutes les directives listen, comme indiqué dans la capture d'écran suivante.

listen 443 ssl http2;

L'exemple de configuration du bloc serveur ressemble à ci-dessous.


server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

Enregistrez les modifications dans le fichier et fermez-le.

Vérifiez ensuite la syntaxe de configuration de NGINX, si c'est OK, redémarrez le service Nginx.

nginx -t
systemctl restart nginx

Ensuite, ouvrez un navigateur Web pour vérifier si votre site Web est diffusé via HTTP/2.

http://www.example.com

Pour accéder aux en-têtes HTTP, faites un clic droit sur la page Web affichée, sélectionnez Inspecter dans la liste des options pour ouvrir les outils de développement, puis cliquez sur l'onglet Réseau et rechargez. la page.

Vérifiez sous Protocoles pour voir celui que votre site utilise (si vous ne voyez pas l'en-tête Protocoles, cliquez avec le bouton droit sur l'un des en-têtes, par exemple Nom, puis cochez Protocole dans la liste pour l'afficher en en-tête).

Si votre site fonctionne sur HTTP/1.1, sous Protocole, vous verrez http/1.1 comme indiqué dans la capture d'écran suivante.

S'il s'exécute sur HTTP/2, sous Protocole, vous verrez h2 comme indiqué dans la capture d'écran suivante. Vous souhaiterez peut-être désactiver le cache du navigateur pour afficher le dernier contenu diffusé directement à partir du serveur Web.

C'est tout! Pour plus d'informations, consultez la documentation du module ngx_http_v2_module. N'hésitez pas à poser des questions via le formulaire de commentaires ci-dessous.