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
-
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/
. -
Habilita HTTP/2: Afegeix la directiva
http2
al bloclisten
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
issl_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:
Exercicis Pràctics
Exercici 1: Habilitar HTTP/2 en un servidor existent
- Objectiu: Habilitar HTTP/2 en un servidor NGINX existent que ja utilitza SSL/TLS.
- Passos:
- Edita el fitxer de configuració del servidor.
- Afegeix
http2
a la directivalisten
. - Guarda els canvis i reinicia NGINX.
- 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
- Objectiu: Configurar HTTP/2 i assignar prioritats a diferents recursos.
- Passos:
- Edita el fitxer de configuració del servidor.
- Habilita HTTP/2.
- Utilitza la directiva
http2_push_preload
per prioritzar recursos.
- 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 fitxerstyle.css
com a estil.
Errors Comuns i Consells
- Error: "ssl" directive is duplicate: Assegura't que no tens múltiples directrius
listen
ambssl
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.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre