Cómo habilitar HTTP/2 en Apache en Ubuntu

Cómo habilitar HTTP/2 en Apache en Ubuntu

Desde el inicio de la World Wide Web. ( www. , el protocolo HTTP. ha evolucionado a lo largo de los años para ofrecer soluciones digitales rápidas y seguras. contenido en Internet.

La versión más utilizada es HTTP 1.1. y, si bien incluye mejoras de funciones y optimizaciones de rendimiento para abordar las deficiencias de versiones anteriores, no alcanza a algunas otras características destacadas que han sido abordadas por HTTP/2.

¿Cuáles son las limitaciones de HTTP/1.1?

El protocolo HTTP/1.1. está plagado de las siguientes deficiencias que lo hacen menos ideal, especialmente cuando se ejecutan servidores web con mucho tráfico:

  1. Retrasos en la carga de páginas web. debido a los encabezados HTTP largos.
  2. HTTP/1.1 solo puede enviar una solicitud por cada archivo por conexión TCP.
  3. Dado que HTTP/1.1 procesa una solicitud por cada conexión TCP, los navegadores se ven obligados a enviar una avalancha de conexiones TCP paralelas para procesar simultáneamente las solicitudes. Esto conduce a la congestión de TCP y, en última instancia, al desperdicio de ancho de banda y degradación de la red.

Los problemas mencionados anteriormente a menudo conducen a una degradación del rendimiento y altos costos generales en el uso del ancho de banda. HTTP/2. entró en escena para abordar estos problemas y ahora es el futuro de los protocolos HTTP.

Ventajas de usar HTTP/2

Ofrece las siguientes ventajas:

  1. Compresión de encabezado que minimiza las solicitudes de los clientes y, por lo tanto, reduce el consumo de ancho de banda. El efecto resultante son velocidades de carga de página rápidas.
  2. Multiplexar varias solicitudes a través de una conexión TCP. Tanto el servidor como el cliente pueden dividir una solicitud HTTP en varios marcos y reagruparlos en el otro extremo.
  3. Rendimiento web más rápido que, en consecuencia, conduce a una mejor clasificación de SEO.
  4. Seguridad mejorada dado que la mayoría de los navegadores convencionales cargan HTTP/2 sobre HTTPS.
  5. HTTP/2 se considera más compatible con dispositivos móviles gracias a la función de compresión de encabezados.

freestar.config.enabled_slots.push ( locationName: “tecmint_incontent”, slotId: “tecmint_incontent”);

Dicho esto, vamos a habilitar HTTP/2. en Apache. en Ubuntu 20.04 LTS. y Ubuntu 18.04 LTS.

Requisitos previos:

Antes de comenzar, asegúrese de habilitar HTTPS. en el servidor web Apache antes de habilitar HTTP/2. Esto se debe a que todos los navegadores web convencionales admiten HTTP/2. sobre HTTPS. Tengo un nombre de dominio apuntado a una instancia en Ubuntu 20.04. que ejecuta un servidor Apache protegido con el certificado Let’s Encrypt.

Además, se recomienda que tenga Apache 2.4.26. y versiones posteriores para servidores de producción que tengan la intención de cambiar a HTTP/2.

Para verificar la versión de Apache. que está ejecutando, ejecute el comando:

$ apache2-v  Verificar la versión de Apache en Ubuntu  Verificar la versión de Apache en Ubuntu Verificar la versión de Apache en Ubuntu

En la salida, puede ver que w Estamos usando la última versión, que es Apache 2.4.41. en el momento de escribir este artículo.

Habilite HTTP/2 en un servidor virtual Apache

Para comenzar, primero confirme que el servidor web esté ejecutando HTTP/1.1. Puede hacer esto en un navegador abriendo la sección de herramientas para desarrolladores en Google Chrome. usando la combinación Ctrl + MAYÚS + I. Haga clic en la pestaña ‘ Red. y busque la columna ‘ Protocolo. .

 Confirmar la versión del protocolo HTTP  Confirmar la versión del protocolo HTTP Confirmar la versión del protocolo HTTP

A continuación, habilite el módulo HTTP/2. en Ubuntu. ejecutando el siguiente comando.

$ sudo a2enmod http2  Habilitar HTTP/2 en Ubuntu  Habilitar HTTP/2 en Ubuntu Habilitar HTTP/2 en Ubuntu

Siguiente, localice y edite su archivo de host virtual SSL. si ha habilitado HTTPS con Let’s Encrypt. se crea un nuevo archivo con le-ssl.conf. sufijo.

$ sudo vim/etc/apache2/sites-enabled/your-domain-name-le-ssl.conf

Inserte la directiva a continuación después de la etiqueta .

Protocolos h2 http/1.1  Habilitar HTTP/2 en Apache  Habilitar HTTP/2 en Apache Habilitar HTTP/2 en Apache

Para guardar el cambios, reinicie el servidor web Apache.

$ sudo systemctl restart apache2

Para verificar si HTTP/2. está habilitado, busque los encabezados HTTP usando el siguiente comando curl como se muestra.

$ curl-I–http2-s https://domain.com/| grep HTTP  Verifique HTTP/2 Soporte en Apache  Verifique la compatibilidad con HTTP/2 en Apache Verifique la compatibilidad con HTTP/2 en Apache

Debería mostrar el resultado.

HTTP/2 200

En el navegador, vuelva a cargar su sitio. Luego regrese a las herramientas para desarrolladores y confirme HTTP/2 indicado por la etiqueta h2 en la columna ‘ Protocolo. .

 Confirmar la versión del protocolo HTTP/2 Confirmar HTTP/2 Versión del protocolo Confirme la versión del protocolo HTTP/2

al usar el módulo mod_php con Apache

Si está ejecutando Apache. junto con el módulo mod_php. debe cambiar a PHP-FPM. Esto se debe a que el módulo mod_php. utiliza el módulo MPM. de prefork que no es compatible con HTTP/2. Debe desinstalar el prefork MPM. y cambiar al módulo mpm_event. que será compatible con HTTP/2.

Si está utilizando el módulo PHP 7.4 mod_php. por ejemplo, desactívelo como se muestra:

$ sudo a2dismod php7.4  Deshabilitar mod_php Module  Deshabilitar módulo mod_php Deshabilitar el módulo mod_php

A continuación, deshabilite el módulo MPM. de prefork.

$ sudo a2dismod mpm_prefork  Deshabilitar Prefork MPM en Apache  Deshabilitar Prefork MPM en Apache Deshabilitar Prefork MPM en Apache

Después de deshabilitar los módulos A continuación, habilite los módulos Event MPM. Fast_CGI. y setenvif. como se muestra.

$ sudo a2enmod mpm_event proxy_fcgi setenvif Habilitar evento MPM en Apache  Activar MPM de eventos en Apache Activar MPM de eventos en Apache

Instale PHP-FPM en Ubuntu

A continuación, instale e inicie PHP-FPM. como se muestra.

$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm

Luego habilite PHP-FPM. para que se inicie en el momento del arranque.

$ sudo systemctl enable php7.4-fpm

A continuación, habilite PHP-FPM. como controlador PHP de Apache y reinicie el servidor web Apache para que se efectúen los cambios.

$ sudo a2enconf php7.4-f pm

Habilite el soporte HTTP/2 en Apache Ubuntu

Luego habilite el módulo HTTP/2 como antes.

$ sudo a2enmod http2

Reinicie Apache para sincronizar todos los cambios.

$ sudo systemctl restart apache2

Finalmente, puede probar si su servidor está usando el protocolo HTTP/2. usando el comando curl como se muestra.

$ curl-I–http2-s https://domain.com/| grep HTTP  Verificar HTTP/2 Protocolo en Apache  Verificar el protocolo HTTP/2 en Apache Verificar el protocolo HTTP/2 en Apache

También puede optar por utilizar las herramientas de desarrollador en el navegador Google Chrome. para verificar como se documentó anteriormente. Tenemos hasta el final de esta guía. Esperamos que haya encontrado valiosa la información y que pueda habilitar cómodamente HTTP/2. en Apache. con facilidad.