×
Como borrar el cache de Cloudflare desde PHP usando su API

Como borrar el cache de Cloudflare desde PHP usando su API


¿Eres un desarrollador? ¿Utilizas Cloudflare para mejorar la performance de tu sitio? Si es así, entonce seguro estarás cansado de tener que estar ingresando y eliminando la cache cada vez que realizas un cambio en tu aplicación. Si, sin dudas Cloudflare es una herramienta que nos beneficia mucho, y si aún no la utilizas en tu sitio, entonces te recomendamos que al menos le eches un vistazo, no te arrepentirás!

Pero a la hora de desarrollar, muchas veces puede ser un dolor de cabeza. Después de todo, tener que estar eliminando la cache cada vez que un cambio es realizado, para poder visualizarlo, es algo que nos quita tiempo, y muchas veces, tiempo es justamente lo que no tenemos.

Y claro, puedes acceder a Cloudflare y deshabilitar la cache mientras estás desarrollando, el problema es que en caso de que te olvides al finalizar, puede que tu sitio pase horas o incluso varios días sin cache, lo que significa que su performance disminuirá, y eso será aún peor que perder tiempo eliminando cache.

Por lo que muchas veces no es realmente una función que utilicemos. Ahora bien, existe otra solución, eliminarla directamente a través de su API. Algo mucho más sencillo y que incluso puedes utilizar al mismo tiempo que estés subiendo los cambios. Por ejemplo si tienes algún script que suba tus cambios, podrás allí colocar además la función de eliminar cache, y con ello, harás dos pasos en uno.

Como utilizar la API de Cloudflare para eliminar cache

Veamos como podemos hacer para eliminar la cache de nuestro sitio sin necesidad de acceder a Cloudflare directamente.

¿Qué necesitamos?

Para poder eliminar la cache de nuestro sitio necesitaremos al menos tres cosas importantes.

  • Obtener nuestra API Key
  • Obtener el identificador de nuestro sitio
  • Generar el script con los datos

Cómo obtener la API Key

El primer paso para poder eliminar la cache en Cloudflare, será conseguir la Key de nuestra API. Y para ello, primero que nada debes loguearnos en nuestra cuenta, eso lo podrás hacer desde el Área de cliente de Cloudflare.

Una vez logueados nos dirigimos a la esquina superior derecha. Donde se encuentra nuestro usuario e ingresamos a «My Profile«.

Cloudflare My Profile

Y allí veremos en la última sección la opción para ver o cambiar nuestra API Key. En este caso simplemente queremos verla, por lo que presionamos el botón «View API Key«. Lo cual nos debería de mostrar un modal con nuestra API. Ten en cuenta que hay que tratarla con suma seguridad, después de todo, quien tenga esta Key podrá realizar varias acciones sin necesidad de loguearse en nuestro panel o de contar con la contraseña. Es por ello, que como dice allí mismo, debemos protegerla como si de un password se tratase.

Cloudflare API Key

Ahora que ya contamos con la Key, necesitamos obtener el identificador del sitio al que queremos eliminarle la cache.

Cómo obtener el Identificador de nuestro sitio

Lo primero que debemos hacer para poder obtener este identificador es seleccionar el sitio en nuestra área de cliente.

Cloudflare Select Website

 

Una vez allí, bajamos hasta la sección «Domain Summary» y allí en «Zone ID» encontraremos el ID que necesitamos.

Cloudflare ZONE ID

Ahora que contamos con ambos identificadores, procederemos a crear el script que utilizaremos.

Como eliminamos la cache de nuestro sitios

Para eliminar la cache de nuestro sitio/sitios simplemente debemos de hacer lo siguiente.

Eliminar cache de todos los archivos.

Para poder eliminar la cache de todos nuestros archivos simplemente debemos correr siguiente comando. Siempre teniendo en cuenta que debemos cambiar ZONE_ID por el ID de a Zona o identificador del sitio, EMAIL por el email registrado y API_KEY por nuestra API Key.

Desde nuestra terminal:

curl -X DELETE "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" \
     -H "X-Auth-Email: EMAIL" \
     -H "X-Auth-Key: API_KEY" \
     -H "Content-Type: application/json" \
     --data '{"purge_everything":true}'

Desde PHP:

<?php

$zone_id = 'ZONE_ID';
$email = 'EMAIL';
$apy_key = 'API_KEY';

$url = "https://api.cloudflare.com/client/v4/zones/{$zone_id}/purge_cache";

$headers = [
    "X-Auth-Email: {$email}",
    "X-Auth-Key: {$apy_key}",
    "Content-Type: application/json"
];

$post_fields = json_encode(array("purge_everything" => true));
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);

// Make the REST call, returning the result
$response = curl_exec($curl);
if (!$response) {
    die("Error al conectar");
}
print_r($response);

Eliminar cache de ciertos archivos

Si por otro lado, deseamos eliminar la cache de solamente algunos archivos, podemos ejecutar el siguiente comando. No olvidemos cambiar ZONE_ID por el id de nuestra zona/identificado del sitio, EMAIL por el email registrado, API_KEY por nuestra Key de aplicación y DIRECCION_ARCHIVO por la dirección completa de los archivos a purgar, ejemplo «http://dominio.com/css/styles.css«.

Por consola:

curl -X DELETE "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" \
     -H "X-Auth-Email: EMAIL" \
     -H "X-Auth-Key: API_KEY" \
     -H "Content-Type: application/json" \
     --data '{"files":["DIRECCION_ARCHIVO"],"tags":["some-tag","another-tag"]}'

Desde PHP:

<?php

$zone_id = 'ZONE_ID';
$email = 'EMAIL';
$apy_key = 'API_KEY';

$url = "https://api.cloudflare.com/client/v4/zones/{$zone_id}/purge_cache";

$headers = [
    "X-Auth-Email: {$email}",
    "X-Auth-Key: {$apy_key}",
    "Content-Type: application/json"
];

$post_fields = json_encode(array("files" => ["http://www.example.com/css/styles.css"]));

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);

// Make the REST call, returning the result
$response = curl_exec($curl);
if (!$response) {
    die("Connection Failure.n");
}
print_r($response);

Conclusión

Como vemos, eliminar cache en Cloudflare es sencillo, además no necesitaremos más que conseguir la API Key y el identificador del sitio y listo. Por otro lado, con ello ahorraremos mucho tiempo, ten en cuenta que ahora este script lo puedes utilizar siempre que desees y te será mucho más fácil eliminarlo desde él, que desde Cloudflare mismo.

¿Te gustó el artículo? Compártelo:

Escrito por Sabrina De Los Santos

Sabrina es una talentosa SysAdmin, encargada del Soporte Técnico via Chat y a través del sistema de Tickets. Además de saber sobre servidores Linux y cPanel, también es una apasionada por la programación de lenguajes C, C++, Bash, PHP - MySQL. Cursó su carrera de Analista Programador en Universidad ORT, y además la de Tecnólogo Informático en UDELAR. Aparte de esto tiene certificaciones en inglés por la Universidad de Cambridge. Conoce más sobre ella desde su Sitio web y LinkedIn.

    Recibe en tu correo electrónico toda la información sobre hosting, desarrollo web y dominios

    Términos y Condiciones de Servicio

    Infranetworking Internacional - Copyright 2002-2024
    Todos los derechos reservados.