GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo habilitar HTTP/2 en Apache en Ubuntu

Desde el inicio de la World Wide Web (www ), el HTTP El protocolo ha evolucionado a lo largo de los años para ofrecer contenido digital seguro y rápido a través de Internet.

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

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

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

  1. Retrasos en la carga de páginas web debido a encabezados HTTP largos.
  2. HTTP/1.1 solo puede enviar una solicitud para 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 las solicitudes simultáneamente. Esto conduce a la congestión de TCP y, en última instancia, al desperdicio de ancho de banda y a la degradación de la red.

Los problemas antes mencionados a menudo condujeron 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 es velocidades de carga de página rápidas.
  2. Multiplexación de 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 SEO.
  4. Seguridad mejorada ya que la mayoría de los navegadores principales 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 encabezado.

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 principales navegadores web admiten HTTP/2 sobre HTTPS . Tengo un nombre de dominio que apunta a una instancia en Ubuntu 20.04 que ejecuta un servidor Apache protegido mediante el certificado Let's Encrypt.

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

Para comprobar la versión de Apache está ejecutando, ejecute el comando:

$ apache2 -v

Comprobar la versión de Apache en Ubuntu

En el resultado, puede ver que 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 host virtual de Apache

Para comenzar, primero confirme que el servidor web está ejecutando HTTP/1.1 . Puede hacerlo en un navegador abriendo la sección de herramientas para desarrolladores en Google Chrome. usando Ctrl +SHIFT + I combinación. Haga clic en 'Red ' y busque el 'Protocolo ' columna.

Confirmar la versión del protocolo HTTP

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

$ sudo a2enmod http2

Habilitar HTTP/2 en Ubuntu

A continuación, busque y edite su SSL archivo de host virtual, si ha habilitado HTTPS usando Let's Encrypt , se crea un nuevo archivo con un le-ssl.conf sufijo.

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

Inserte la siguiente directiva después de <VirtualHost *:443> etiqueta.

Protocols h2 http/1.1

Habilitar HTTP/2 en Apache

Para guardar los cambios, reinicie el servidor web Apache.

$ sudo systemctl restart apache2

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

$ curl -I --http2 -s https://domain.com/ | grep HTTP

Compruebe la compatibilidad con HTTP/2 en Apache

Debería obtener el resultado que se muestra.

HTTP/2 200

En el navegador, recarga tu sitio. Luego regrese a las herramientas para desarrolladores y confirme HTTP/2 indicado por h2 etiqueta en el 'Protocolo ' columna.

Confirmar la versión del protocolo HTTP/2

Al usar el módulo mod_php con Apache

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

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

$ sudo a2dismod php7.4 

Deshabilitar módulo mod_php

A partir de entonces, deshabilite el prefork MPM módulo.

$ sudo a2dismod mpm_prefork

Deshabilitar Prefork MPM en Apache

Después de deshabilitar los módulos, a continuación, habilite el Evento MPM , Rápido_CGI , y setenvif módulos como se muestra.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

Habilitar MPM de eventos en Apache

Instalar 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 comenzar 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-fpm

Habilitar la compatibilidad con 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 HTTP/2 protocolo usando el comando curl como se muestra.

$ curl -I --http2 -s https://domain.com/ | grep HTTP

Compruebe el protocolo HTTP/2 en Apache

También puede optar por utilizar las herramientas para desarrolladores en Google Chrome. navegador 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.

Compartir es cuidar…
Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit
Ubuntu
  1. Cómo instalar Apache en Ubuntu 18.04

  2. Cómo habilitar SSH en Ubuntu 18.04

  3. Ubuntu 20.04 – ¿Cómo habilitar Hwe?

  4. Cómo habilitar HTTP/2 en Nginx en Ubuntu y CentOS

  5. Cómo configurar Apache con HTTP/2 en Ubuntu 16.04

Cómo habilitar la compatibilidad con HTTP/2.0 en Apache

Cómo habilitar la compatibilidad con HTTP/2.0 en Nginx

Cómo habilitar HTTP/2.0 en Nginx

Cómo habilitar HTTP/2 en Apache en el sistema Linux

Cómo habilitar HTTP/2 con Apache en Ubuntu

Cómo habilitar HTTP/2.0 en Nginx en CentOS