HTTP/2 és la segona versió principal del protocol de xarxa HTTP, utilitzat per la World Wide Web. HTTP/2 introdueix diverses millores en comparació amb HTTP/1.1, incloent la compressió de capçaleres, la multiplexació de fluxos i la priorització de recursos, que milloren significativament el rendiment i l'eficiència de les comunicacions web.

Objectius del Tema

  • Entendre què és HTTP/2 i les seves avantatges.
  • Aprendre a configurar NGINX per suportar HTTP/2.
  • Veure exemples pràctics de configuració.
  • Realitzar exercicis pràctics per reforçar els conceptes apresos.

Què és HTTP/2?

HTTP/2 és una actualització del protocol HTTP/1.1 que ofereix diverses millores:

  • Multiplexació de fluxos: Permet enviar múltiples sol·licituds per una única connexió TCP, eliminant la necessitat de múltiples connexions paral·leles.
  • Compressió de capçaleres: Utilitza HPACK per comprimir les capçaleres HTTP, reduint la quantitat de dades transmeses.
  • Priorització de recursos: Permet assignar prioritats a les sol·licituds, millorant l'eficiència en la càrrega de pàgines.
  • Push del servidor: Permet al servidor enviar recursos al client abans que aquest els sol·liciti explícitament.

Configurant NGINX per HTTP/2

Requisits previs

  • Assegura't que tens una versió de NGINX que suporti HTTP/2 (NGINX 1.9.5 o superior).
  • Necessites tenir configurat SSL/TLS, ja que HTTP/2 requereix una connexió segura.

Configuració bàsica

  1. Edita el fitxer de configuració de NGINX: Normalment es troba a /etc/nginx/nginx.conf o en un fitxer de configuració específic del lloc a /etc/nginx/sites-available/.

  2. Habilita HTTP/2: Afegeix la directiva http2 al bloc listen del servidor.

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # Altres configuracions SSL...

    location / {
        root /var/www/html;
        index index.html;
    }
}

Explicació del codi

  • listen 443 ssl http2;: Habilita HTTP/2 en el port 443 (port per defecte per HTTPS).
  • ssl_certificate i ssl_certificate_key: Especifica els fitxers del certificat SSL i la clau privada.

Verificant la configuració

Després de fer els canvis, verifica la configuració de NGINX i reinicia el servei:

sudo nginx -t
sudo systemctl restart nginx

Exercicis Pràctics

Exercici 1: Habilitar HTTP/2 en un servidor existent

  1. Objectiu: Habilitar HTTP/2 en un servidor NGINX existent que ja utilitza SSL/TLS.
  2. Passos:
    • Edita el fitxer de configuració del servidor.
    • Afegeix http2 a la directiva listen.
    • Guarda els canvis i reinicia NGINX.
  3. Verificació: Utilitza eines com https://tools.keycdn.com/http2-test per verificar que el teu lloc web està servint contingut via HTTP/2.

Exercici 2: Configurar HTTP/2 amb priorització de recursos

  1. Objectiu: Configurar HTTP/2 i assignar prioritats a diferents recursos.
  2. Passos:
    • Edita el fitxer de configuració del servidor.
    • Habilita HTTP/2.
    • Utilitza la directiva http2_push_preload per prioritzar recursos.
  3. Exemple de configuració:
server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        root /var/www/html;
        index index.html;
        http2_push_preload on;
    }

    location = /style.css {
        add_header Link "</style.css>; rel=preload; as=style";
    }

    location = /script.js {
        add_header Link "</script.js>; rel=preload; as=script";
    }
}

Solució

  • http2_push_preload on;: Habilita el push del servidor per HTTP/2.
  • add_header Link "</style.css>; rel=preload; as=style";: Indica al navegador que pre-carregui el fitxer style.css com a estil.

Errors Comuns i Consells

  • Error: "ssl" directive is duplicate: Assegura't que no tens múltiples directrius listen amb ssl en el mateix bloc de servidor.
  • Consell: Utilitza eines de monitorització com nghttp per depurar i verificar les connexions HTTP/2.

Resum

En aquest tema, hem après què és HTTP/2 i com configurar NGINX per suportar aquest protocol. Hem vist exemples pràctics de configuració i hem realitzat exercicis per reforçar els conceptes apresos. HTTP/2 ofereix millores significatives en el rendiment i l'eficiència de les comunicacions web, i habilitar-lo en el teu servidor NGINX pot proporcionar una experiència d'usuari més ràpida i fluida.

© Copyright 2024. Tots els drets reservats