¿Cómo habilitar la extensión Keep-Alive?

Habilitar Keep-Alive puede ayudar a optimizar el rendimiento del sitio web y ofrecer una mejor experiencia al usuario. Permite al navegador del visitante reutilizar una única conexión TCP para cargar el contenido de la página.

Keep-Alive suele estar activado por defecto en tu servidor de origen. Pero si está deshabilitado, hay algunas soluciones para activarlo por tu cuenta.

Este tutorial te mostrará los pasos para habilitar Keep-Alive y los archivos que debes preparar de antemano. También repasaremos las razones por las que deberías activar Keep-Alive.

¿Qué es Keep-Alive?

Keep-Alive, también conocido como conexión persistente, es un patrón de comunicación entre un servidor web y un cliente que reduce la cantidad de solicitudes HTTP y acelera una página web.

Cuando se activa Keep-Alive, el cliente y el servidor acuerdan mantener abierta la conexión para posteriores peticiones o respuestas.

¿Cómo funciona Keep-Alive?

Por defecto, las conexiones HTTP se cierran al final de las transacciones de datos. Esto significa que los clientes crean una nueva conexión para solicitar cada archivo de una página y los servidores cierran estas conexiones TCP después de enviar los datos.

Sin embargo, si un servidor necesita responder a varias peticiones HTTP simultáneamente y servir un solo archivo para cada nueva conexión TCP, el tiempo de carga de la página del sitio aumentará. Esto puede conducir a una mala experiencia del usuario.

Para superar este problema, los dueños de sitios web deben habilitar el encabezado Keep-Alive para limitar el número de nuevas conexiones.

Al activar el encabezado de conexión Keep-Alive, los clientes pueden descargar todo el contenido, como JavaScript, CSS, imágenes y videos, a través de una única conexión TCP en lugar de enviar una solicitud diferente para cada archivo.

Aquí hay una imagen que muestra cómo funciona Keep-Alive:

Explicación de cómo funciona Keep Alive

Ventajas de habilitar Keep-Alive

Algunas de los beneficios de habilitar Keep-Alive son:

  • Keep-Alive reduce el uso del CPU y la memoria: debido a una menor cantidad de generación de peticiones HTTP. Esto beneficiará a los usuarios de todas las plataformas de alojamiento (hosting gratuito, hosting compartido, VPS).
  • Provee HTTP pipelining: entrega de solicitudes a través de la misma conexión TCP, sin necesidad de esperar la respuesta del servidor.
  • Soporte de navegadores modernos: muchos navegadores utilizan conexiones persistentes automáticamente, siempre que los servidores de destino soporten Keep-Alive. Un navegador moderno suele permitir seis conexiones por dominio.
  • Aumento del SEO: la activación de Keep-Alive mejora el rendimiento del sitio, lo que afecta a su rendimiento en la optimización de los motores de búsqueda (SEO).
  • Reducción de la congestión de la red: al reducir el número de conexiones TCP entre servidores y clientes se libera el ancho de banda de la red.
  • Mejora del rendimiento de SSL/TLS: con Keep-Alive, una conexión SSL/TLS sólo se abre una vez, lo que evita la necesidad de realizar handshakes adicionales y mejora la latencia del sitio.

En resumen, Keep-Alive es una gran manera de reducir el uso de recursos y aumentar la velocidad de tu sitio web al mismo tiempo.

Requisitos HTTP antes de activar Keep-Alive

El archivo que debe preparar antes de habilitar la cabecera HTTP Keep-Alive depende del servidor que utilicez y de tus privilegios de acceso.

Asegúrate de tener acceso a uno de los siguientes archivos antes de continuar con esta guía:

  • .htaccess: es un archivo de configuración a nivel de directorio que puede usarse para cambiar las funciones y características de los sitios alojados en Apache.
  • httpd.conf: es el archivo de configuración principal de Apache. Ten en cuenta que puedes no tener acceso a este archivo si tu sitio web se ejecuta en un alojamiento compartido.
  • nginx.conf: es el archivo de configuración principal de NGINX.


A continuación sigue estos pasos para habilitar Keep-Alive:

Paso 1: analiza la velocidad de tu sitio web

Aunque muchos proveedores de alojamiento tienen Keep-Alive activado por defecto, algunos de ellos pueden tener este encabezado desactivado por razones de rendimiento.

Para comprobar si Keep-Alive está habilitado en tu servidor, ejecuta una prueba de velocidad del sitio web utilizando una herramienta como GTMetrix.

Sitio web de GTMetrix


Si la herramienta de análisis muestra que Keep-Alive está deshabilitado, pasa al siguiente paso.

Paso 2: habilita Keep-Alive

Para activar Keep-Alive, debes solicitarlo explícitamente a través de la cabecera HTTP accediendo a .htaccess o al archivo de configuración principal de tu servidor web. Si activas Keep-Alive, la cabecera de respuesta HTTP mostrará:

Connection: keep-alive.


El siguiente tutorial cubrirá cuatro métodos diferentes para habilitar Keep-Alive en tu servidor.

Opción 1: editar el archivo .htaccess

Habilita Keep-Alive y anula cualquier configuración del servidor añadiendo el siguiente código a tu archivo .htaccess:

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

Este método debería funcionar en la mayoría de los proveedores de alojamiento compartido basados en Linux. Si utilizas Hostinger, localiza el archivo .htaccess, utilizando el Administrador de Archivos.

Asegúrate de probar tu sitio web para verificar cualquier error después de editar el archivo .htaccess.

Opción 2: habilitar Keep-Alive en Apache mediante el archivo httpd.conf

Si tienes acceso al archivo de configuración de Apache, es posible habilitar la extensión desde allí.

Para localizar el archivo httpd.conf, introduce el siguiente comando en la línea de comandos:

find / -name httpd.conf

Los siguientes parámetros afectan la funcionalidad de Keep-Alive en Apache, desde la habilitación de la conexión persistente hasta la definición del tiempo de espera de la conexión inactiva:

  • Keep-Alive: establece Keep-Alive On para activar la extensión o KeepAlive Off para desactivarla.
  • MaxKeepAliveRequests: esta directiva establece el número máximo de peticiones de usuario que el servidor mantendrá durante cada conexión Keep-Alive. Considera establecer su valor a 50 peticiones para una sola conexión. Aumenta el límite si tu servidor necesita entregar más respuestas.
  • KeepAliveTimeout: este valor especifica el tiempo que el servidor espera nuevas peticiones de un cliente. Se recomienda mantener la conexión inactiva durante cinco o diez segundos y aumentarla si es necesario. Establecer este valor demasiado alto puede causar una alta carga en el servidor y desperdiciar recursos de memoria.

Esta es la configuración que debería tener:

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 50

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 10

Opción 3: habilitarlo en NGINX

NGINX es un servidor y un proxy inverso que tiene Keep-Alive activado por defecto. Sin embargo, en algunos casos puede estar deshabilitado. Los usuarios pueden habilitarlo usando ngx_http_core_module.

Busca el valor keepalive_disable. En la mayoría de los casos, esta será la razón por la que Keep-Alive no está funcionando.

Antes de eliminar el valor para habilitar Keep-Alive, asegúrate de averiguar por qué fue deshabilitado en primer lugar.

Opción 4: activar Keep-Alive en Windows Server (IIS)

Si utilizas un servidor basado en Windows, activa la extensión Keep-Alive a través de la línea de comandos.

El siguiente comando la habilitará:

appcmd set config /section:httpProtocol /allowKeepAlive:true

Si deseas desactivar Keep-Alive, utiliza:

appcmd set config /section:httpProtocol /allowKeepAlive:false

Los usuarios de Windows Server también pueden habilitar el encabezado Keep-Alive, editando los archivos de configuración directamente o escribiendo scripts WMI.

Paso 3: comprueba los cambios

Una vez que Keep-Alive esté activado, ejecuta otro análisis con GTMetrix o con el comprobador de cabeceras HTTP de KeyCDN para ver si la extensión está activa.

También es posible comprobar la cabecera HTTP a través del terminal utilizando el siguiente comando:

curl -I http://example.com/example.php

En el siguiente ejemplo, comprobaremos la cabecera HTTP de hostinger.com:

curl -i http://hostinger.com/index.php

Esto nos da los siguientes resultados:

HTTP/1.1 301 Moved Permanently
Date: Tue, 27 Jul 2021 01:55:24 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Tue, 27 Jul 2021 02:55:24 GMT
Location: https://www.hostinger.com/index.php

Connection: keep-alive muestra que Keep-Alive es funcional.

Conclusión

Activar Keep-Alive es una gran manera de optimizar tu sitio web, ya que ayuda a mejorar la velocidad y el rendimiento, asegurando tiempos de carga más rápidos y una mayor eficiencia.

Al activar la cabecera Keep-Alive, el cliente y el servidor pueden reutilizar una única conexión TCP para varias peticiones y respuestas. Esto elimina la necesidad de establecer nuevas conexiones para cada petición o respuesta HTTP.

Recapitulemos los pasos para activar la cabecera Keep-Alive:

  1. Analiza tu sitio: utiliza una herramienta como GTMetrix para comprobar si Keep-Alive es funcional.
  2. Habilita Keep-Alive: accede a .htaccess o al archivo de configuración principal de tu servidor para habilitar Keep-Alive a través de la cabecera HTTP. Los usuarios de Windows Server pueden hacerlo a través de la línea de comandos.
  3. Prueba los cambios: ejecuta otro análisis para ver si Keep-Alive está activo.

Esperamos que este artículo te haya ayudado a habilitar Keep-Alive. Si tienes alguna pregunta, háznola saber en la sección de comentarios más abajo.

Author
El autor

Gustavo B.

Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.