Com habilitar HTTP/2.0 a Nginx


HTTP/2 és l'últim estàndard per al protocol HTTP, és el successor de HTTP/1.1. Cada cop és més popular pels beneficis que aporta als desenvolupadors web i als usuaris en general. Proporciona un transport optimitzat per a la semàntica HTTP donant suport a totes les característiques bàsiques d'HTTP/1.1, però pretén ser més eficient de múltiples maneres.

Hi ha moltes funcions a la part superior d'HTTP/2 que us ofereixen més possibilitats per optimitzar un lloc web/aplicació. Ofereix una veritable multiplexació i concurrència, una millor compressió de capçalera (codificació binària), una millor priorització, millors mecanismes de control de flux i un nou mode d'interacció anomenat \server push que permet a un servidor enviar respostes a un client. Per no parlar, HTTP /2 es basa en el protocol experimental SPDY de Google.

Per tant, l'objectiu principal d'HTTP/2 és reduir el temps general de càrrega de la pàgina web, millorant així el rendiment. També se centra en l'ús de recursos de xarxa i servidor, així com en la seguretat perquè, amb HTTP/2, el xifratge SSL/TLS és obligatori.

En aquest article, aprendràs a habilitar Nginx amb suport HTTP/2 als servidors Linux.

  • Una instal·lació funcional de NGINX versió 1.9.5 o superior, creada amb el mòdul ngx_http_v2_module.
  • Assegureu-vos que el vostre lloc utilitzi un certificat SSL/TLS; si no en teniu, podeu obtenir-ne un certificat autofirmat.

Podeu instal·lar NGINX o implementar-lo amb una pila LEMP tal com es descriu a les guies següents:

  • Com instal·lar Nginx a CentOS 8
  • Com instal·lar el servidor LEMP a CentOS 8
  • Com instal·lar NGINX, MySQL/MariaDB i PHP a RHEL 8
  • Com instal·lar LEMP Stack amb PhpMyAdmin a Ubuntu 20.04
  • Instal·leu Nginx amb blocs de servidor (amfitrions virtuals) a Debian 10
  • Com utilitzar Nginx com a equilibrador de càrrega HTTP a Linux

Com habilitar HTTP/2.0 a NGINX

Si teniu NGINX instal·lat, comproveu que s'ha creat amb el mòdul ngx_http_v2_module executant l'ordre següent.

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

Un cop tingueu un lloc web/aplicació servit per NGINX amb HTTPS configurat, obriu el fitxer de bloc de servidor virtual (o host virtual) del vostre lloc web per editar-lo.

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

Podeu habilitar el suport HTTP/2 afegint simplement el paràmetre http2 a totes les directives listen tal com es mostra a la captura de pantalla següent.

listen 443 ssl http2;

La configuració del bloc del servidor d'exemple és la següent.

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    
}

Deseu els canvis al fitxer i tanqueu-lo.

A continuació, comproveu la sintaxi de configuració de NGINX, si està bé, reinicieu el servei Nginx.

# nginx -t
# systemctl restart nginx

A continuació, obriu un navegador web per verificar si el vostre lloc web es publica mitjançant HTTP/2.

http://www.example.com

Per accedir a les capçaleres HTTP, feu clic amb el botó dret a la pàgina web que es mostra, seleccioneu Inspecciona de la llista d'opcions per obrir les eines per a desenvolupadors, després feu clic a la pestanya Xarxa i torneu a carregar la pàgina.

Comproveu a Protocols per veure el que està utilitzant el vostre lloc (si no veieu la capçalera de Protocols, feu clic amb el botó dret a qualsevol de les capçaleres, per exemple, Nom i, a continuació, marqueu Protocol a la llista per mostrar-lo com a capçalera).

Si el vostre lloc s'executa amb HTTP/1.1, a Protocol, veureu http/1.1 tal com es mostra a la captura de pantalla següent.

Si s'executa a HTTP/2, a Protocol, veureu h2 tal com es mostra a la captura de pantalla següent. És possible que vulgueu desactivar la memòria cau del navegador per veure el contingut més recent que es publica directament des del servidor web.

Això és tot! Per obtenir més informació, consulteu la documentació del mòdul ngx_http_v2_module. No dubteu a fer preguntes mitjançant el formulari de comentaris que trobareu a continuació.