¿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«.
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.
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.
Una vez allí, bajamos hasta la sección «Domain Summary» y allí en «Zone ID» encontraremos el ID que necesitamos.
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.