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 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 repasará 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:

keep alive

Ventajas de habilitar Keep Alive

  • 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).
  • Las peticiones HTTPS necesitan más tiempo de CPU y recursos. Keep-Alive beneficiará en gran medida a tu sitio web si utilizas HTTPS y SSL.
  • Reduce la demora y aumenta en general la velocidad de carga y el rendimiento.
  • Keep-Alive es soportado por todos los navegadores actuales.
  • También favorecerá a tu sitio web en términos de SEO y posicionamiento debido a un mejor rendimiento 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.

Lo que necesitarás

Antes de comenzar esta guía, necesitarás lo siguiente:

  • Acceso al archivo .htaccess
  • Acceso a httpd.conf (opcional)
  • Acceso a HttpCoreModule (opcional)

Paso 1 – Analizar tu sitio

Lo primero que tendrás que hacer es analizar tu sitio con una herramienta como GTMetrix para determinar si Keep-Alive está habilitado o deshabilitado en tu servidor. Así se verán los resultados luego del análisis:

Keep Alive sin funcionar por completo

En algunos servidores, Keep-Alive viene habilitado por defecto. Si tu análisis da una puntuación del 100%, no hace falta hacer nada más.

Paso 2 – Habilitar Keep-Alive

Hay varias formas de habilitar esta opción y todas dependen de tu proveedor de hosting y los servidores. Aquí compartimos algunas opciones:

Opción 1: Editar el archivo .htaccess

Para habilitar Keep-Alive, agregar el siguiente código al archivo .htaccess debería funcionar. Activar Keep-Alive usando .htaccess sustituirá cualquier configuración del servidor y habilitará la conexión persistente.

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

Este método debería de funcionar en la mayoría de los hostings Linux compartidos. En caso de que no sepas dónde encontrar .htaccess, revisa este tutorial.

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

Si tienes acceso al archivo de configuración de Apache, puedes habilitar la extensión desde allí. Así se debería ver la configuración:

# 
# 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
  • KeepAlive On: Esta sección habilita la extensión.
  • MaxKeepAliveRequests: Esta sección establece el número máximo de solicitudes para una sola conexión. 50 solicitudes para una conexión es una excelente opción.
  • KeepAliveTimeout: Esta sección determina por cuánto tiempo el servidor esperará por una nueva solicitud del cliente. Se recomienda empezar por un valor pequeño como 5 o 10 segundos e ir incrementando el valor si se requiere posteriormente. Poner valores muy altos puede causar una sobrecarga en el servidor.

Si no puedes localizar el archivo httpd.conf, ejecuta el siguiente comando en la línea de comandos:

find / -name httpd.conf

Opción 3: Habilitarlo en NGINX

Generalmente Keep-Alive está habilitado por defecto en NGINX, pero en algunos casos, puede no estarlo. Puedes habilitarlo usando el módulo HttpCoreModule. Tienes que ver el valor keepalive_disable, el cual, en muchos casos es la razón por la que Keep-Alive puede no estar funcionando. Antes de habilitarlo, debes de asegurarte de que sabes la razón por la que está deshabilitado antes de querer hacer cualquier cambio.

Opción 4: Windows Server (ISS)

Si estás usando un servidor basado en Windows, puedes habilitar fácilmente la extensión usando las siguientes líneas de comandos.

Esta línea de comandos la habilita:

appcmd set config /section:httpProtocol /allowKeepAlive:true

Si deseas deshabilitarla, usa está línea de comando:

appcmd set config /section:httpProtocol /allowKeepAlive:false

Puedes ver el tutorial oficial hecho por Microsoft si tienes alguna duda al respecto.

Paso 3 – Comprobar los cambios

Una vez que hayas habilitado Keep-Alive, vuelve a analizar tu sitio con GTMetrix u otra herramienta de análisis de performance para ver que los cambios se hayan realizado correctamente. Así se verán los resultados:

Keep Alive totalmente funcional

También es posible revisar si Keep-Alive está habilitado revisando tu cabecera HTTP. Esto se puede hacer desde una terminal usando el siguiente comando:

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

Por ejemplo:

curl -I http://tupaginaweb.com/index.php

El resultado sería algo como:

HTTP/1.1 301 Moved Permanently 
Connection: keep-alive 
Server: nginx 
Date: Fri, 23 Dec 2016 18:58:14 GMT 
Content-Type: text/html 
Content-Length: 178 
Location: https://www.hostinger.com/index.php

La parte Connection: keep-alive es la parte que te indica que la extensión está habilitada.

Conclusión

En resumen, habilitar Keep Alive para tu sitio web es una excelente manera de mejorar la velocidad y el rendimiento. La conexión TCP persistente garantizará tiempos de carga más rápidos y una mayor eficiencia, manteniendo felices a tus visitantes.

Si deseas mejorar aún más tu sitio web, estos artículos también te ayudarán:

Comprimir tu página y el CSS con Gzip

Por qué usar imágenes escaladas

Minificar CSS, HTML y JavaScript

Usar imágenes JPEG progresivas

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.