Hay muchas funciones además de HTTP/2 que le dan más posibilidades para optimizar un sitio web/aplicación. Ofrece verdadera multiplexación y concurrencia, mejor compresión de encabezado (codificación binaria), mejor priorización, mejores mecanismos de control de flujo y un nuevo modo de interacción llamado "servidor push ” que permite a un servidor enviar respuestas a un cliente. Sin mencionar, HTTP/2 se basa en el SPDY experimental de Google protocolo.
Por lo tanto, el enfoque principal de HTTP/2 es reducir el tiempo total de carga de la página web, mejorando así el rendimiento. También se centra en el uso de los recursos de la red y del servidor, así como en la seguridad porque, con HTTP/2 ,
En este artículo, aprenderá cómo habilitar Nginx con HTTP/2 soporte en servidores Linux.
Requisitos previos:
- Una instalación funcional de NGINX versión 1.9.5 o superior, construido con el ngx_http_v2_module módulo.
- Asegúrese de que su sitio use un certificado SSL/TLS; si no tiene uno, puede obtenerlo de Let's Encrypt o usar un certificado autofirmado.
Puede instalar NGINX o implementarlo con un LEMP apilar como se describe en las siguientes guías:
- Cómo instalar Nginx en CentOS 8
- Cómo instalar el servidor LEMP en CentOS 8
- Cómo instalar NGINX, MySQL/MariaDB y PHP en RHEL 8
- Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04
- Instalar Nginx con Server Blocks (hosts virtuales) en Debian 10
- Cómo utilizar Nginx como equilibrador de carga HTTP en Linux
Cómo habilitar HTTP/2.0 en NGINX
Si tiene NGINX instalado, verifique que se creó con el ngx_http_v2_module
módulo ejecutando el siguiente comando.
# strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module
Compruebe el módulo Nginx HTTP/2
Una vez que tenga un sitio web/aplicación atendida por NGINX con HTTPS configurado, abra el bloque de servidor virtual de su sitio web (o servidor virtual ) archivo para editar.
# vi /etc/nginx/conf.d/example.com.conf [On CentOS/RHEL] $ sudo nano /etc/nginx/sites-available/example.com.conf [On Ubuntu/Debian]
Puede habilitar la compatibilidad con HTTP/2 simplemente agregando http2
parámetro a todos listen
directivas como se muestra en la siguiente captura de pantalla.
listen 443 ssl http2;
La configuración de bloqueo del servidor de muestra se ve a continuación.
server { server_name example.com www.example.com; access_log /var/log/nginx/example.com_access.log; error_log /var/log/nginx/example.com_error.log; listen [::]:443 ssl ipv6only=on http2; # managed by Certbot listen 443 ssl http2; # managed by Certbot ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot }
Habilitar la compatibilidad con HTTP/2 en Nginx
Guarde los cambios en el archivo y ciérrelo.
Luego verifique la sintaxis de configuración de NGINX, si está bien, reinicie el servicio Nginx.
# nginx -t # systemctl restart nginx
A continuación, abra un navegador web para verificar si su sitio web se está publicando a través de HTTP/2. .
http://www.example.com
Para acceder a los encabezados HTTP, haga clic derecho en la página web mostrada, seleccione Inspeccionar de la lista de opciones para abrir las herramientas de desarrollo, luego haga clic en Red y vuelve a cargar la página.
Consulte en Protocolos para ver el que está usando su sitio (si no ve el encabezado Protocolos, haga clic con el botón derecho en cualquiera de los encabezados, por ejemplo, Nombre , luego marque Protocolo de la lista para mostrarlo como un encabezado).
Si su sitio se ejecuta en HTTP/1.1 , bajo Protocolo , verá http/1.1 como se muestra en la siguiente captura de pantalla.
Sitio web que se ejecuta en HTTP/1.1
Si se ejecuta en HTTP/2 , bajo Protocolo , verás h2
como se muestra en la siguiente captura de pantalla. Es posible que desee desactivar la memoria caché del navegador para ver el contenido más reciente que se ofrece directamente desde el servidor web.
Sitio web que se ejecuta en HTTP/2.0
¡Eso es todo! Para obtener más información, consulte la documentación del módulo ngx_http_v2_module. No dude en hacer preguntas a través del formulario de comentarios a continuación.
Compartir es cuidar…Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit