Protocolo de transferencia de hipertexto versión 2 (HTTP/2 ) es la última versión del protocolo HTTP, publicada como estándar IETF en RFC 7540 en 2015. El enfoque del protocolo es el rendimiento; específicamente, la latencia percibida por el usuario final, la red y el uso de recursos del servidor. Uno de los principales objetivos 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 tiene soporte HTTP/2 desde la versión 1.9.5. En este tutorial, supondré que ya tiene una configuración de TLS en funcionamiento y que ha requerido la versión de Nginx instalada en la distribución de Linux de su elección, y que sabe cómo usar Let's Encrypt, o sabe cómo emitir un certificado autofirmado.
Requisitos
Para habilitar HTTP/2 en Nginx, deberá cumplir los siguientes requisitos:
- Nginx versión 1.9.5 o superior. Puede verificar su versión de Nginx ejecutando (
nginx -v
) comando. - OpenSSL versión 1.0.2 o superior. Puede verificar su versión de OpenSSL ejecutando el comando (versión de OpenSSL).
- Certificado SSL/TLS de Let's Encrypt o un certificado autofirmado.
- Protocolo TLS 1.2 o superior habilitado. De lo contrario, no podrá utilizar HTTP/2. Las implementaciones de HTTP/2 deben usar TLS versión 1.2 o superior para HTTP/2 sobre TLS.
Habilitar HTTP/2 en Nginx
Para habilitar HTTP/2 en Nginx, debemos agregar http2
parámetro para listen
directiva en nuestro servidor virtual:
listen 443 ssl http2;
Y recarga tu configuración de Nginx:
sudo systemctl reload nginx.service
Esta es la configuración mínima del servidor virtual que se puede usar 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 su servidor es compatible con HTTP/2, puede utilizar las herramientas de desarrollo de su 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 puede usar la variable incrustada Nginx $http2 para ver el protocolo negociado. Esta variable registrará: “h2
” para HTTP/2 sobre TLS, “h2c
” para HTTP/2 sobre TCP de texto claro, o una cadena vacía de lo contrario en el registro de acceso de Nginx si está configurado para hacerlo.
Y eso es todo lo que hay que hacer para habilitar HTTP/2 en su servidor Nginx.
Enlaces
- RFC 7540
- HTTP/2