Almacenamiento en caché del lado del servidor

El almacenamiento en caché del lado del servidor permite que el software web configurado correctamente acelere la entrega de la página al hacer que el servidor almacene en caché su contenido web. Cuando el almacenamiento en caché del lado del servidor está habilitado, todas las solicitudes GET y HEAD externas se envían a un proxy inverso NGINX para el almacenamiento en caché. El sistema intentará almacenar en caché principalmente contenido dinámico en la medida de lo posible.

El proxy inverso NGINX crea una entrada de caché basada en las variables esquema, nombre de host, request_uri y query_string. NGINX tiene en cuenta el encabezado de respuesta Vary y crea una entrada de caché separada para cada variación de una propiedad definida en un encabezado Vary. Por ejemplo, si su software establece un encabezado de respuesta “Variar: Agente de usuario”, NGINX creará una entrada de caché separada para cada agente de usuario que cargue la página en particular.

Tenga en cuenta que no todo el contenido se almacena en caché. Una solicitud GET o HEAD no se almacenará en caché si:

  • No hay conjunto de encabezado de respuesta HTTP de Cache-Control.
  • Hay un encabezado de respuesta HTTP de control de caché establecido en privado, sin caché o sin almacenamiento.
  • Hay un conjunto de encabezado de respuesta HTTP Set-Cookie.
  • Hay un conjunto de encabezado de respuesta HTTP Expires, pero no se puede determinar el vencimiento.

IMPORTANTE: si su sitio/software se basa en directivas de configuración de Apache en archivos .htaccess u otro filtrado dinámico, use el almacenamiento en caché del lado del servidor con precaución, ya que el contenido dinámico almacenado en caché no seguirá ninguna directiva .htaccess cuando se sirva. Por ejemplo, si parte de su contenido está protegido con contraseña o restringido por una dirección IP (usando un archivo .htaccess o a través de la sección de Protección del Panel de control), cuando se almacena en caché correctamente, este contenido también será visible para las partes no autorizadas . En tales casos, no se recomienda el uso del almacenamiento en caché del lado del servidor, a menos que su software use encabezados de control de caché HTTP adecuados para evitar el almacenamiento en caché de contenido dinámico confidencial.

Si ha realizado algunos cambios en su contenido que se ha almacenado en caché y no quiere esperar a que el caché caduque automáticamente, puede purgar el caché manualmente. Más detalles sobre las opciones disponibles para hacer esto se enumeran en nuestro artículo Purgar el caché del lado del servidor.

Consulte nuestro artículo Habilitación del almacenamiento en caché del lado del servidor para WordPress para obtener instrucciones detalladas sobre cómo configurar correctamente su instalación de WordPress para aprovechar al máximo el servicio de almacenamiento en caché del lado del servidor.

La memoria caché del lado del servidor se purgará (eliminará) automáticamente cuando caduque.

Si ha realizado algunos cambios en su contenido que se ha almacenado en caché, puede borrar el caché del lado del servidor manualmente utilizando cualquiera de los siguientes métodos:

  • Sección de almacenamiento en caché del lado del servidor del panel de control
  • cURL a través de la línea de comando
  • cURL via PHP

Nota: Algunas aplicaciones de software se pueden configurar para detectar cambios de contenido y purgar el caché del lado del servidor automáticamente. Puede encontrar instrucciones paso a paso para WordPress y Drupal en nuestros Habilitación del almacenamiento en caché del lado del servidor para WordPress y Habilitación del almacenamiento en caché del lado del servidor para artículos de Drupal.


Sección de almacenamiento en caché del lado del servidor del panel de control

Para purgar manualmente el caché del lado del servidor para un dominio/subdominio específico, vaya a la sección Almacenamiento en caché del lado del servidor del Panel de control de alojamiento y haga clic en el botón Purgar junto al nombre del dominio/subdominio.

cURL a través de la línea de comando


Puede purgar la caché del lado del servidor para su dominio/subdominio (por ejemplo, http://your_domain.com) manualmente usando el siguiente comando:

curl -X PURGE http://tu_dominio.com


El uso del siguiente comando eliminará solo el caché del lado del servidor para la página/directorio especificado (por ejemplo, http://your_domain.com/your_page)

curl -X PURGE http://tu_dominio.com/tu_pagina

Debe ejecutar los comandos enumerados anteriormente desde su cuenta de alojamiento a través de SSH. Para poder hacer esto, debe asegurarse de que las Herramientas de red estén habilitadas para su cuenta a través de la sección Acceso SSH del Panel de control de alojamiento. Más detalles sobre cómo conectarse a través de SSH a su cuenta están disponibles en el artículo SSH de nuestra documentación en línea.

cURL a través de PHP

Agregue el bloque de código que se muestra a continuación a un archivo PHP (por ejemplo, purge_cache.php) en el directorio de su sitio web utilizando la sección Administrador de archivos del panel de control de alojamiento:

// Evitar el almacenamiento en caché de este script
header(“Caché-Control: no-caché”);

// Obtener el protocolo y el nombre de host
$protocolo = (!empty($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] !== ‘off’ || $_SERVER[‘SERVER_PORT’] == 443) ? “https://” : “http://”;
$host = $_SERVIDOR[‘HTTP_HOST’];

// Establecer la URL usando el protocolo y el nombre de host
$url = $protocolo. $anfitrión;

// Crear un nuevo recurso cURL
$ch = curl_init();

// Establecer la URL
curl_setopt($canal, CURLOPT_URL, $url);

// Establecer el método de solicitud en PURGE
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “PURGA”);

// Intenta borrar el caché e imprimir el resultado
echo (curl_exec($ch) ? “Purgado con éxito” : “No se puede purgar”) . ” el caché del lado del servidor para ” . $anfitrión. “!”;

// Cierra el recurso cURL y libera recursos del sistema
curl_close($ch);
?>

Para purgar el caché de su dominio/subdominio, simplemente debe acceder al archivo que creó a través de un navegador (por ejemplo, http://your_domain/purge_cache.php).

El almacenamiento en caché del lado del servidor puede ayudar a reducir los tiempos de carga de la página en un margen significativo si se configura correctamente. Puede obtener más información sobre el servicio de almacenamiento en caché del lado del servidor disponible en nuestros servidores en el artículo Información general sobre el almacenamiento en caché del lado del servidor.

Para aprovechar el almacenamiento en caché del lado del servidor en un sitio web de Drupal 8, debe:

  1. Configurar Drupal 8 para almacenar contenido en caché
  2. Elija cómo borrar el caché
  3. Habilitar el almacenamiento en caché del lado del servidor
1. Configurar Drupal 8 para almacenar contenido en caché

De forma predeterminada, Drupal 8 le permite especificar durante cuánto tiempo se debe almacenar el caché a través de los encabezados max-age y Cache-Control. Puede seleccionar su período de almacenamiento en caché preferido a través del menú Almacenamiento en caché de la sección Administración -> Configuración -> Desarrollo -> Rendimiento. Le recomendamos que establezca el período de almacenamiento en caché en 1 año para obtener los mejores resultados.

2. Elija cómo borrar el caché

Para que Drupal 8 borre el caché automáticamente cuando realice cambios en el contenido de su sitio web, siga estos pasos:

  1. Amplíe su instalación de Drupal 8 agregando los módulos Purge y Generic HTTP Purge.
  2. Instale los siguientes componentes:

    • Purge module – PurgePurge Tokens, and Purge UI components
    • Purge – Processors module – Late runtime processor component
    • Purge – Queuers module – Core tags queuer component
    • Purge – reverse proxies & CDNs module – Generic HTTP Purger and Generic HTTP Tags Header component

  3. Vaya a la sección Administración -> Configuración -> Desarrollo -> Rendimiento y seleccione la pestaña Purgar que ahora está disponible.
  4. Haga clic en el botón agregar purgador en el menú Invalidación de caché.
  5. Seleccione el botón de opción Purgador HTTP en la ventana emergente que apareció.
  6. Haz clic en el botón Añadir.
  7. Aparecerá un nuevo purgador encima del botón agregar purgador. Abra su menú haciendo clic en la flecha que apunta hacia abajo en el botón, seleccione la opción Configurar y aparecerá una nueva ventana.
  8. Introduzca un nombre que describa el purgador (por ejemplo, purgador de caché) en el campo Nombre.
  9. En la pestaña Solicitud, ingrese la siguiente configuración:

    Nombre de host: tu_dominio.com (Asegúrate de reemplazar tu_dominio.com con el dominio/subdominio real donde está instalado Drupal 8)
    Puerto: 80 (valor predeterminado)
    Ruta: / (valor predeterminado)
    Método de solicitud: BAN (valor predeterminado)
    Esquema: http (valor predeterminado)

    Nota: Si su instalación de Drupal 8 está configurada para funcionar siempre a través de HTTPS, debe cambiar la configuración del Puerto a 443 y el Esquema a https.

  10. En la pestaña Encabezados, introduzca la siguiente configuración:

    Encabezado: Purge-Cache-Tags
    • Valor: [invalidación: expresión]

Como alternativa, puede purgar la memoria caché del lado del servidor para su dominio/subdominio manualmente utilizando cualquiera de los métodos proporcionados en nuestro artículo Purgar la memoria caché del lado del servidor.

Nota: Si no configura Drupal 8 para borrar el caché automáticamente cuando se cambia el contenido, el botón Borrar todos los cachés de Administración -> Configuración -> Desarrollo -> Rendimiento borrará su caché local, pero el caché del lado del servidor no ser aclarado.

3. Habilitar el almacenamiento en caché del lado del servidor

Una vez que haya preparado Drupal 8 para el almacenamiento en caché del lado del servidor, puede habilitar el servicio de almacenamiento en caché del lado del servidor yendo a la sección de almacenamiento en caché del lado del servidor del panel de control de alojamiento y haciendo clic en el botón Habilitar junto al dominio/subdominio donde está instalado Drupal.