GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo habilitar HTTP/2 en el servidor web Apache en Ubuntu y Debian

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. Apache tiene soporte HTTP/2 desde la versión 2.4.17. En este tutorial, supondré que ya tiene una configuración de TLS en funcionamiento, que tiene instalada la versión de Apache requerida 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.

Este tutorial ha sido probado en Debian 10 , Debian 9, Ubuntu 20.04 LTS, y Ubuntu 18.04 LTS.

Requisitos

Para habilitar HTTP/2 en Apache, deberá cumplir los siguientes requisitos:

  • Primero, debe habilitar HTTPS en su servidor. Todos los principales navegadores permiten usar HTTP/2 solo sobre HTTPS. Además, TLS  Se requiere la versión del protocolo>=1.2 con conjuntos de cifrado modernos.
  • A continuación, asegúrese de ejecutar Apache 2.4.17 o superior porque HTTP/2 es compatible desde esta versión en adelante.
  • Además, asegúrese de que su cliente/navegador admita HTTP/2.

Deshabilitar el módulo mod_php

Antes de que podamos cambiar el módulo MPM de Apache en el siguiente paso a mpm_event, tendremos que deshabilitar el antiguo modo mod_php y reemplazarlo con el modo PHP-FPM más moderno. Los comandos difieren para cada versión del sistema operativo, utilice los que coincidan con su sistema instalado.

Ubuntu 20.04 LTS

sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi

Debian 10

sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi

Ubuntu 18.04 LTS

sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi

Debian 9

sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi

Habilitar un Apache MPM que sea compatible con HTTP/2

De forma predeterminada, Apache usará el prefork MPM. Este MPM no es compatible con HTTP/2, por lo que tendremos que reemplazarlo con el módulo mpm_event más moderno.

Primero, deshabilitamos el módulo mpm_prefork:

sudo a2dismod mpm_prefork

Luego habilitamos el módulo mpm_event:

sudo a2enmod mpm_event

Habilitar soporte HTTP/2 en Apache

Para que HTTP/2 funcione en Apache, debe habilitar y cargar los módulos SSL y HTTP/2. Para hacerlo, puede ejecutar lo siguiente en su terminal:

sudo a2enmod ssl

y luego

sudo a2enmod http2

Para activar estos nuevos módulos, debe ejecutar:

sudo systemctl restart apache2

Después de habilitar y cargar los módulos de Apache necesarios, vaya a su directorio de configuración de Apache y edite la configuración de Apache.

Para habilitar HTTP/2 en su servidor web Apache, agregue uno de los siguientes a su configuración global de Apache o dentro de un host virtual en particular.

Protocols h2 http/1.1

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

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>

Para comprobar si su servidor es compatible con HTTP/2, puede utilizar las herramientas de desarrollo de su navegador. Las siguientes son capturas de pantalla de los navegadores Google Chrome y Apple Safari que muestran HTTP/2 en acción en https://example.com dominio.

Cromo

Safari

Enlaces

  • RFC 7540
  • HTTP/2

Ubuntu
  1. Cómo eliminar el servidor web Apache de Ubuntu

  2. Cómo instalar y configurar Nginx en Ubuntu 18.04 / Debian 9

  3. ¿Cómo habilitar mod_rewrite en el servidor web de ubuntu?

  4. Cómo instalar y configurar el servidor web Apache en Ubuntu 13.10

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

Cómo instalar el servidor web Apache en Ubuntu 20.04

Cómo instalar y configurar Apache Spark en Ubuntu/Debian

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

Cómo agregar compatibilidad con PHP-FPM en el servidor web Apache y Nginx en Ubuntu 18.04

Cómo instalar y configurar un servidor web LAMP en Ubuntu 18.04

Cómo habilitar HTTP/2 con Apache en Ubuntu