Cómo activar el soporte HTTP / 2 en DirectAdmin (CentOS)

HTTP / 2 es la versión más nueva del protocolo HTTP, basada en SPDY. Su desarrollo fue iniciado por Google y HTTP / 2 se basa en gran medida en la base de código y los conceptos de SPDY.

SPDY ahora ha quedado en desuso y la adopción mundial de HTTP / 2 está en progreso. Muchas compañías de hosting ya han brindado soporte para HTTP / 2 debido a su velocidad adicional.

Al momento de escribir, DirectAdmin no proporciona una forma de un clic para habilitar HTTP / 2. Sin embargo, hay varias formas de lograr el soporte HTTP / 2. El método descrito a continuación ha demostrado ser el enfoque más robusto y estable.

Varios componentes deben actualizarse para que HTTP / 2 surta efecto. Debido a esto, le recomiendo encarecidamente que tome una instantánea. Si es posible, siga esta guía en un servidor completamente nuevo.

Esta guía consta de dos partes: habilitar el soporte HTTP / 2 en el servidor web (Apache) para clientes (visitantes) y la activación de HTTP / 2 en cURL. Habilitar HTTP v2 para cURL obliga a las solicitudes cURL que se originan en su servidor a utilizar HTTP / 2 para sus servidores de destino, si es posible.

Puntos clave

  • No es necesario actualizar tanto Apache como cURL para usar HTTP / 2. Está bien si sigues cualquiera de las guías, ya que funcionan por separado.
  • Ha habido algunos casos extraños en los que Apache y HTTP / 2 parecen funcionar bien, pero la carga se realiza correctamente en navegadores "aleatorios" y los sitios se vuelven inalcanzables (tiempo de espera) en otros. Simplemente volviendo a la configuración original de Apache se solucionará esto, ya que Apache no sabrá sobre HTTP / 2 y no intentará servir contenido sobre él.
  • Siempre haga una copia de seguridad o haga una instantánea con anticipación. Habilitar HTTP / 2 puede ser un proceso relativamente frágil, por lo que es importante poder revertir los cambios si es necesario.
  • La recompilación de software siempre puede causar un ligero tiempo de inactividad. En algunos casos, esto es menos de un minuto, pero no hay forma de saber exactamente. Al menos, debe estar preparado para algún tiempo de inactividad.
  • Necesita acceso root al servidor para esta guía. Si no tiene la capacidad de elevar su nivel de permisos a root, debe comunicarse con el administrador del servidor para habilitar HTTP / 2 en el servidor.

HTTP / 2 y SSL

Aunque no es un requisito técnico de HTTP / 2, en la mayoría de los casos necesitará un certificado SSL para usar HTTP / 2. Como se mencionó, HTTP / 2 técnicamente no requiere esto, pero muchos navegadores (Safari, Chrome, Firefox, etc.) han creado este estándar. El contenido no se servirá a través de HTTP / 2 cuando una página se carga sin SSL utilizando estos navegadores. Teniendo en cuenta que la mayoría de los usuarios usan estos navegadores (y otros) que también participan en este estándar, debe usar un certificado SSL.

Si está buscando un certificado SSL gratuito, debería echar un vistazo a una de nuestras guías Let's Encrypt:

Recomendado: Instalar Let's Encrypt en DirectAdmin

Paneles de control alternativos:

Guías generales:

Preguntas más frecuentes

¿Esta guía documenta la instalación de Brotli?

No, en este artículo no se describe ningún método para instalar Brotli junto con HTTP / 2.

La compilación falla sin ningún motivo, y he seguido los pasos exactos descritos en este artículo. ¿Cómo resuelvo esto?

Aunque hay muchas razones posibles para esto, teniendo en cuenta diferentes entornos y similares, posiblemente, su configuración regional no sea correcta. Intente poner LC_ALL=Cdelante de sus comandos, para que el comando para recompilar Apache se vea así, por ejemplo: LC_ALL=C ./build apache ¡No olvide el espacio entre LC_ALL=Cy el comando!

¿Perderé algún dato?

En caso de que esté utilizando una configuración de proxy inverso, por ejemplo, con Apache y Nginx, debe revertirlo a Apache, en cuyo caso de hecho perdería sus archivos de configuración de Nginx. En caso de que haya realizado configuraciones personalizadas de VirtualHost (ya sea a través de la línea de comandos o DirectAdmin), debe modificarlas por dominio para que las versiones de Apache permanezcan activas. No perderá ningún dato con respecto a los datos del usuario, el contenido del sitio web, las bases de datos, etc.

¿Estas versiones personalizadas me impedirán actualizar paquetes y software en el futuro?

En general, no hay necesidad de preocuparse por esto. Teniendo en cuenta la configuración modular de DirectAdmin (y, por lo tanto, la de CustomBuild), debería poder degradar o actualizar a otras versiones de software en el futuro sin ningún problema. Aunque debe documentar los cambios en caso de que se requiera una ruta de actualización alternativa en el futuro, no debería tener que preocuparse por las versiones de incompatibilidad con nuevas versiones de software.

DirectAdmin no ofrece HTTP / 2 fuera de la caja; seguramente eso significa que no es compatible o tienen sus razones para no serlo. ¿Por qué se requiere esta solución?

Los métodos para instalar y habilitar HTTP / 2 que se describen a continuación no son tanto soluciones, sino meras actualizaciones de paquetes y cambios de configuración. Debido a la configuración modular de DirectAdmin, estos cambios están perfectamente bien y no deberían causar problemas u otros problemas. Es difícil determinar por qué DirectAdmin no admite esto de forma inmediata, dado que los autores no han dado una explicación para esto. Sin embargo, una conclusión bastante sólida es que DirectAdmin hace uso de los paquetes de versión por el sistema operativo. Por lo general, estos no están tan actualizados como los paquetes a continuación. No hay nada malo con HTTP / 2, la tecnología en sí misma y su compatibilidad. Al igual que muchas otras tecnologías, puede llevar algún tiempo adaptarse de forma nativa.

¿Cuáles son los posibles riesgos de activar HTTP / 2 con Apache?

En la activación de HTTP / 2 (que consiste en un proceso de actualización y configuración) hay muchas variables que pueden resultar no estándar. Sin embargo, el mayor riesgo radica en el error humano. Tome una instantánea de antemano, asegúrese de anunciar el mantenimiento a sus usuarios (si hay alguno en el servidor aparte de usted) y tenga cuidado. Además, no copie y pegue los comandos sin pensar en lo que hacen primero.

Recomiendo girar temporalmente una instancia de nube Vultr separada con DirectAdmin y seguir los pasos. Si algo sale mal en una instalación 'nueva', sabrá dónde y cómo depurarlo para que no tenga que hacerlo en un entorno de producción.

Parte 1: Apache (servidor web)

Si actualmente está utilizando un proxy inverso, debe volver a un entorno solo de Apache. Esto se debe a que HTTP / 2 es muy difícil de depurar si algo sale mal. Al poder hacer uso de la funcionalidad HTTP / 2 integrada de Apache, puede eliminar de manera efectiva una gran parte de los problemas.

Paso 1: Actualización de OpenSSL

En muchos casos, su versión de OpenSSL no es compatible con ALPN, que se requiere para HTTP / 2. Por lo tanto, habilitemos ALPN actualizando OpenSSL.

Primero, asegurémonos de que su versión de OpenSSL no sea compatible ejecutando:

openssl version

Si su versión de OpenSSL es inferior a 1.1.0f, ejecute lo siguiente como root. De lo contrario, salte al paso 2.

cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install

Paso 2: Instalar nghttp2

Para que HTTP / 2 funcione, necesitamos instalar nghttp2. Nghttp2 es una implementación de HTTP / 2 (y HPACK) en C. Nghttp2 es una versión combinada del cliente, servidor y proxy HTTP / 2 en C.

Para instalar nghttp2, ejecute los siguientes comandos. Afortunadamente, nghttp2 se puede construir directamente desde CustomBuild.

cd /usr/local/directadmin/custombuild
./build update
./build nghttp2

Paso 3: Habilitar HTTP / 2 en Apache

Necesitamos alterar algunos valores en el archivo de configuración de Apache para que use HTTP / 2. Cuando el servidor web no recibe instrucciones para usar una versión HTTP alternativa, no la usará. Por lo tanto, necesitamos agregar HTTP / 2 al archivo de configuración.

Para que estos cambios surtan efecto, es necesaria una reconstrucción de Apache a través de CustomBuild. Como los parámetros y valores utilizados por CustomBuild al crear software se determinan en un archivo de configuración dedicado, la mejor práctica es colocar estos cambios en un archivo de configuración personalizado dedicado.

Nota: si no coloca estos cambios en un archivo personalizado, probablemente se sobrescribirán y su configuración se interrumpirá. Siga las instrucciones que se detallan a continuación.

Ejecute los siguientes comandos para crear el archivo y rellenarlo previamente con los valores predeterminados para que luego podamos modificarlo:

mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache

A partir de ahora, tenemos un archivo personalizado que es idéntico al archivo de configuración predeterminado para Apache utilizado por CustomBuild. Tenemos que alterar el /usr/local/directadmin/custombuild/custom/ap2/configure.apachearchivo reemplazando la siguiente cadena:

"--with-ssl=/usr" \

con:

"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \

Nota: Asegúrese de que no haya espacios en blanco después de ninguna barra diagonal inversa . El exceso de espacio en blanco hará que la construcción se rompa.

Luego, reconstruye Apache. CustomBuild utilizará el archivo de configuración personalizado que acaba de crear:

./build apache

Paso 4: alterar la configuración de Apache

Apache ahora se ha reconstruido, incluidos los módulos y la configuración necesarios para HTTP / 2. Eso significa que ahora tenemos una versión de Apache instalada en nuestro servidor con soporte para HTTP / 2, pero necesitamos decirle a Apache que realmente la use primero.

Agregue las siguientes líneas en /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Guarde estos cambios y vuelva a escribir los archivos de configuración para que sean persistentes en las reconstrucciones:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

HTTP / 2 ahora debería estar activo en su servidor web (Apache).

Paso 5: reinicia el servidor

Reinicie el servidor para asegurarse de que nuestros cambios persistan durante los reinicios. Reinicie el servidor a través del panel de control de Vultr o ejecutando el rebootcomando.

Paso 6: prueba HTTP / 2

La funcionalidad de HTTP / 2 se puede probar fácilmente utilizando la siguiente herramienta: Prueba de HTTP / 2

Teniendo en cuenta que HTTP / 2 es específico del servidor y no se puede restringir a un par específico de dominios o sitios web, ingresar cualquier nombre de dominio que apunte al servidor o incluso la dirección IP del servidor debería funcionar.

La prueba le dirá si puede alcanzar el servidor web a través de HTTP / 2. En caso de que la herramienta indique que HTTP / 2 está activado en su servidor, ahora se puede acceder a los sitios web de DirectAdmin a través de HTTP / 1.1 o HTTP / 2. En caso de que el soporte HTTP / 2 no esté disponible para el cliente (visitante), su navegador recurrirá a HTTP / 1.1.

En caso de que la herramienta no pueda llegar a su servidor web a través de HTTP / 2, siga los pasos anteriores nuevamente. En general (como los pasos anteriores no sobrescriben activamente nada), esto no dañará ni interrumpirá su configuración.

Parte 2: cURL

Recomiendo actualizar cURL para que pueda llegar a los servidores con soporte HTTP / 2. En caso de que un servidor no sea compatible con HTTP / 2, recurrirá a HTTP / 1.1.

Paso 1: Agregar el archivo de configuración personalizado

Al igual que con Apache, crearemos un archivo de configuración personalizado para que cURL creado por CustomBuild use nuestra configuración personalizada.

Crea el directorio:

mkdir -p /usr/local/directadmin/custombuild/custom/curl

Crea el archivo:

touch /usr/local/directadmin/custombuild/custom/curl/configure.curl

Copie y pegue los siguientes contenidos en el archivo:

#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2

Como puede ver, estos contenidos le dicen a cURL que se compile usando la lib_http2biblioteca SSL.

Guarde el archivo y dele los permisos correctos:

chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl

Paso 2: Construyendo cURL

Luego, todo lo que tenemos que hacer es construir cURL.

cd /usr/local/directadmin/custombuild
./build curl

cURL ahora se ha compilado con soporte HTTP 2.



Leave a Comment

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i

Configure su propia red privada con OpenVPN

Configure su propia red privada con OpenVPN

Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.

How to Install and Configure CyberPanel on Your CentOS 7 Server

How to Install and Configure CyberPanel on Your CentOS 7 Server

Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi

Install eSpeak on CentOS 7

Install eSpeak on CentOS 7

Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin

Cómo instalar Thelia 2.3 en CentOS 7

Cómo instalar Thelia 2.3 en CentOS 7

¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i

Monitoree sus dispositivos usando LibreNMS en CentOS 7

Monitoree sus dispositivos usando LibreNMS en CentOS 7

¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad

Cómo instalar Cacti 1.1 en CentOS 7

Cómo instalar Cacti 1.1 en CentOS 7

Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t

Cómo usar Sudo en Debian, CentOS y FreeBSD

Cómo usar Sudo en Debian, CentOS y FreeBSD

Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.

Cómo instalar MODX CMS y Nginx en CentOS 7

Cómo instalar MODX CMS y Nginx en CentOS 7

MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i

Cómo instalar YOURLS en CentOS 7

Cómo instalar YOURLS en CentOS 7

YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación

Setup Nginx-RTMP on CentOS 7

Setup Nginx-RTMP on CentOS 7

Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i

Cómo instalar LimeSurvey en CentOS 7

Cómo instalar LimeSurvey en CentOS 7

LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a

Cómo instalar Vanilla Forum en CentOS 7

Cómo instalar Vanilla Forum en CentOS 7

¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.

Instalación de Netdata en CentOS 7

Instalación de Netdata en CentOS 7

¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar

Cómo instalar Starbound Server en CentOS 7

Cómo instalar Starbound Server en CentOS 7

¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo

Instalación y configuración de ZNC en CentOS 7

Instalación y configuración de ZNC en CentOS 7

ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.