Entiendo que, tal vez, Apache actualmente no es la opción preferida para lanzar nuevos proyectos en él, sin embargo, existe, vive y los proyectos funcionan en él. La elección para él puede caer por alguna preferencia personal, por requisitos de compatibilidad o por otras razones ... no es el punto. En este artículo quiero describir paso a paso cómo configurar el soporte para el protocolo HTTP / 2 en el servidor web Apache, porque lo uso yo mismo y lo
necesito en dicho artículo, y espero que sea útil para alguien en la práctica también.
¿Qué es HTTP / 2? Como su nombre lo indica, esta es la segunda versión del protocolo HTTP. Puede leer más sobre los beneficios al menos en
Wikipedia . Solo diré por mi cuenta que si no está alojando un alojamiento compartido, entonces es obligatorio tener este protocolo, así como, por ejemplo, HTTPS. Sí, para que HTTP / 2 funcione para usted, necesitará acceso completo a la consola de la máquina (aunque sea virtual) a través de ssh o de alguna otra manera, así como HTTPS (TLS / SSL) ya configurado. Bueno, vamos al grano.
Primer paso Actualización de Apache
El servidor Apache admite el protocolo HTTP / 2 desde la versión 2.4.24, por lo que si tiene una versión anterior instalada, es hora de actualizarlo. Pero primero, verifique:
apache -v
Este comando producirá algo como esto:
Server version: Apache/2.4.37 (Ubuntu) Server built: 2018-10-28T15:27:08
La primera línea muestra la versión del servidor. Si es mayor o igual que 2.4.24, podemos proceder con seguridad al segundo paso. De lo contrario, debe actualizar Apache, cuya versión actual puede encontrar en el PPA del famoso desarrollador (si ya tuvo que poner algo nuevo en Debian / Ubuntu) - Ondřej Surý. Los PPA son paquetes personales que no están incluidos en los repositorios de distribución oficiales. Por lo tanto, para usarlos, primero debe enseñarle al sistema qué y dónde obtenerlo:
sudo add-apt-repository ppa:ondrej/apache2
El tipo está haciendo un buen trabajo, y no le importa obtener una pequeña dona, lo cual está muy claramente indicado cuando se conecta a sus nabos ...
Además, de hecho, actualizamos los paquetes:
sudo apt update sudo apt upgrade
Y nuevamente comprobamos la versión de Apache. Si todo salió bien, Apache se instalará en su servidor, en el que puede configurar HTTP / 2. Si todo salió mal, me temo que este no es el tema de este artículo. Ahora ve al segundo paso.
Paso dos Usando FastCGI
¿Qué es FastCGI? Es mejor leer, como dije, al menos en
Wikipedia , porque no puede contarnos brevemente. Debe cambiar a PHP ejecutándose en modo FastCGI (php-fpm). Cómo funciona: se proporciona una buena respuesta en el
Tostador . Aquí no entraré en tales matices, pero procederé inmediatamente a la instalación:
sudo apt install php-fpm
Después de la instalación, literalmente se nos dirá lo siguiente: para habilitar PHP 7.2 FPM en Apache2, haga:
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm
Lo hacemos Después de eso, debe deshabilitar mod_php, porque en lugar de eso ahora tiene php-fpm.
sudo a2dismod php7.2
En términos generales, es posible que haya tenido una versión diferente de PHP antes de eso. Puede ver los módulos que ha instalado en el sistema en el directorio
/ etc / apache2 / mods-available / , y que están activos en
/ etc / apache2 / mods-enabledLuego, reinicie Apache
sudo service apache2 restart
e ir al tercer paso.
Paso tres Cambio de Prefork a Evento
Qué es MPM y cuál es la diferencia entre prefork, evento, trabajador: puede leer aquí en
este maravilloso artículo ... pero ahora es realmente importante saber solo una cosa: el prefork "estándar"
no es
muy compatible con HTTP / 2, por lo que debe usar uno más adecuado . Apague uno, encienda el otro, reinicie Apache.
sudo a2dismod mpm_prefork sudo a2enmod mpm_event service apache2 restart
El cuarto paso. Habilitar HTTP / 2
Ya sea en el archivo de configuración del host, que se puede encontrar en el directorio
/ etc / apache2 / sites-enabled / , o en la configuración del servidor
/etc/apache2/apache2.conf , decimos que necesitamos soporte para el nuevo protocolo:
Protocols h2 h2c http/1.1
Lo que realmente importa es
h2 . Otros dos puntos quedan a su discreción.
h2c es
compatible con HTTP / 2 sobre TCP (no TLS).
http / 1.1 : soporte para la versión anterior de HTTP.
Encienda el módulo http2 y reinicie el servidor:
sudo a2enmod http2 service apache2 restart
Han llegado
De ahora en adelante. Su recurso debería comenzar a funcionar a través de HTTP / 2. Si usa Chrome yendo al recurso, verá cómo el rayo en la esquina superior derecha del navegador se ilumina en azul. Al pasar el mouse sobre él, verá el indicador HTTP / 2 habilitado (h2). En Firefox, vaya al panel de desarrolladores y en la pestaña Red, active la columna Protocolo: para obtener recursos de su sitio, debe aparecer HTTP / 2.0. También puede verificar si su recurso admite este protocolo en
uno de los muchos sitios en la Web. Pero no te relajes, porque
HTTP / 3 ya
está pisándole los talones :)