Introducción a HTTP/2
HTTP/2 es la segunda versión principal del protocolo de red HTTP, utilizado por la World Wide Web. HTTP/2 mejora significativamente el rendimiento en comparación con HTTP/1.1, ofreciendo características como:
- Multiplexación: Permite múltiples solicitudes y respuestas simultáneas sobre una única conexión TCP.
- Compresión de encabezados: Reduce el tamaño de los encabezados HTTP, mejorando la eficiencia.
- Prioridad de solicitudes: Permite que las solicitudes más importantes se procesen primero.
- Server Push: Permite al servidor enviar recursos al cliente antes de que los solicite.
Habilitando HTTP/2 en NGINX
Para habilitar HTTP/2 en NGINX, es necesario tener una versión de NGINX que soporte HTTP/2 (NGINX 1.9.5 o superior) y un certificado SSL/TLS configurado, ya que HTTP/2 requiere HTTPS.
Paso 1: Verificar la versión de NGINX
Primero, asegúrate de que tu versión de NGINX es compatible con HTTP/2:
Paso 2: Configurar SSL/TLS
Asegúrate de tener configurado SSL/TLS en tu servidor NGINX. Aquí hay un ejemplo básico de configuración SSL:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /usr/share/nginx/html; index index.html index.htm; } }
Paso 3: Habilitar HTTP/2
Para habilitar HTTP/2, simplemente añade la directiva http2
en la configuración del bloque listen
:
server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /usr/share/nginx/html; index index.html index.htm; } }
Paso 4: Reiniciar NGINX
Después de realizar los cambios en la configuración, reinicia NGINX para aplicar los cambios:
Verificación de HTTP/2
Para verificar que HTTP/2 está habilitado y funcionando, puedes usar herramientas como curl
o el navegador web.
Usando curl
Usando el navegador
Abre las herramientas de desarrollo de tu navegador (F12 en la mayoría de los navegadores), navega a la pestaña de red y verifica que el protocolo utilizado es HTTP/2.
Ejemplo Completo de Configuración
Aquí tienes un ejemplo completo de configuración de NGINX con HTTP/2 habilitado:
server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; location / { root /usr/share/nginx/html; index index.html index.htm; } }
Ejercicio Práctico
Ejercicio 1: Habilitar HTTP/2
- Objetivo: Configurar un servidor NGINX para que utilice HTTP/2.
- Pasos:
- Verifica la versión de NGINX.
- Configura SSL/TLS en tu servidor.
- Habilita HTTP/2 en la configuración de NGINX.
- Reinicia NGINX.
- Verifica que HTTP/2 está funcionando.
Solución
-
Verifica la versión de NGINX:
nginx -v
-
Configura SSL/TLS:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /usr/share/nginx/html; index index.html index.htm; } }
-
Habilita HTTP/2:
server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /usr/share/nginx/html; index index.html index.htm; } }
-
Reinicia NGINX:
sudo systemctl restart nginx
-
Verifica que HTTP/2 está funcionando:
curl -I --http2 https://example.com
Conclusión
En esta sección, hemos aprendido qué es HTTP/2 y cómo habilitarlo en NGINX. HTTP/2 ofrece mejoras significativas en el rendimiento y la eficiencia de las comunicaciones web. Habilitar HTTP/2 en NGINX es un proceso sencillo que puede proporcionar beneficios inmediatos en términos de velocidad y capacidad de respuesta de tu sitio web. En el próximo tema, exploraremos cómo NGINX puede trabajar con gRPC.
Curso de NGINX
Módulo 1: Introducción a NGINX
Módulo 2: NGINX como Servidor Web
- Sirviendo Contenido Estático
- Listados de Directorios
- Páginas de Error Personalizadas
- Registro y Formatos de Registro
Módulo 3: NGINX como Proxy Inverso
- Introducción al Proxy Inverso
- Configurando un Proxy Inverso
- Balanceo de Carga
- Verificaciones de Salud