Cómo activar HTTP/2 en Nginx

El Protocolo de Transferencia de Hipertexto Versión 2 (HTTP/2) es la última versión del protocolo HTTP, publicada como norma del IETF en el RFC 7540 en 2015 . El protocolo se centra en el rendimiento; concretamente, en la latencia percibida por el usuario final y en el uso de recursos de la red y del servidor. Un objetivo importante es permitir el uso de una única conexión desde los navegadores a un sitio Web. El protocolo es compatible con versiones anteriores, por lo que los métodos HTTP, los códigos de estado y la semántica son los mismos que para las versiones anteriores del protocolo. Nginx es compatible con HTTP/2 desde la versión 1.9.5. En este tutorial, voy asuponer que ya tienes una configuración TLS que funciona, y que tienes instalada la versión necesaria de Nginx en la distribución Linux que elijas, y que sabes cómo utilizar Let’s Encrypt, o sabes cómo emitir un certificado autofirmado.

Requisitos

Para habilitar HTTP/2 en Nginx necesitarás cumplir los siguientes requisitos:

  • Nginx versión 1.9.5 o superior. Puedes comprobar tu versión de Nginx ejecutando el comando (nginx -v ).
  • OpenSSL versión 1.0.2 o superior. Puedes comprobar tu versión de OpenSSL ejecutando el comando (versión de OpenSSL) o instalando la última versión de OpenSSL.
  • Certificado SSL/TLS de Let’s Encrypt o un certificado autofirmado.
  • Protocolo TLS 1.2 o superior activado. De lo contrario, no podrás utilizar HTTP/2. Las implementaciones de HTTP/2 deben utilizar TLS versión 1.2 o superior para HTTP/2 sobre TLS.

Habilitar HTTP/2 en Nginx

Para habilitar HTTP/2 en Nginx, tenemos queañadir el parámetro http2a la directivalistenen nuestro host virtual:

listen 443 ssl http2;

Y recargar la configuración de Nginx:

sudo systemctl reload nginx.service

Esta es la configuración mínima del servidor virtual que se puede utilizar para habilitar HTTP/2 en algún host virtual:

server {

listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name example.com;
root /path/to/public;

ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;

ssl_protocols TLSv1.2;

}

Para comprobar si tu servidor admite HTTP/2, puedes utilizar las herramientas de desarrollo de tu navegador o los archivos de registro de Nginx. La siguiente es una captura de pantalla del navegador Google Chrome que muestra HTTP/2 en acción en el dominio https://example.com.

También puedes utilizar la variable incrustada $http2 de Nginx para ver el protocolo negociado. Esta variable registrará :»h2» para HTTP/2 sobre TLS, «h2c» para HTTP/2 sobre TCP en texto claro, o una cadena vacía en caso contrario en el registro de acceso de Nginx si está configurado para ello.

Y eso es todo lo que hay que hacer para activar HTTP/2 en tu servidor Nginx.

Enlaces

También te podría gustar...