Logo de CloudFlareCloudFlare es una CDN (Content Delivery Network) gratuita que ha ganado mucha popularidad recientemente.

Las CDN son redes mundiales que distribuyen el contenido entre varios servidores dispersos por todo el globo, consiguiendo con esto una mayor seguridad y estabilidad.

Al estar el contenido distribuido, un cliente que solicite alguna información de los servidores siempre recibirá la misma desde uno de los servidores más cercanos a su ubicación -geográficamente hablando-. De esta forma, el rendimiento se dispara y se consigue una velocidad que no puede conseguirse por mucho que optimicemos nuestros servidores web.

Este rendimiento no es lo único que nos proporcionan las CDN. Al estar el contenido distribuido, en el caso de que algún servidor de la red se caiga (o incluso aunque lo haga nuestro propio servidor) el contenido pasará a ser servido por otro servidor, consiguiendo así paliar el efecto que puede tener la pérdida de servicio de una de nuestras máquinas. Además, en caso de que nuestros servidores tengan muchas peticiones, estas se repartirán entre varias máquinas de la red y sí, esto ayuda a paliar ataques (D)DOS.

Todo esto tiene algunas desventajas, como que los cambios en el contenido estático (imágenes,  vídeos…) pueden tardar en verse reflejados, ya que las CDN pueden tardar un tiempo en cachear de nuevo la información de nuestra página principal.

Estos servicios son normalmente ofrecidos por grandes compañías que trabajan mano a mano con los operadores (o por los mismos operadores) por sus grandes demandas de infraestructura. Sin embargo, desde hace ya unos años, podemos encontrar multitud de plataformas que nos ofrecen la potencia de una CDN a nuestras aplicaciones particulares.

Voy a hablaros de como usar CloudFlare, la CDN gratuita. Una de estas plataformas que es muy sencilla y que, a pesar de que todo esto pueda intimidar a primera vista, es de muy fácil configuración.

Esta empresa ofrece servicios para alojar el contenido de nuestros servidores en la CDN de CloudFlare. Aunque el servicio ofrece unas cuentas premium (que garantizan una mayor seguridad y personalización de las opciones) tenemos la opción de crearnos una cuenta gratuita que funciona muy bien. El único requisito que necesitamos para añadir nuestro servidor a las CDNs de CloudFlare es tener acceso a la configuración DNS de nuestra máquina.

Mi configuración DNS

Los DNS de mi dominio apuntan a los de CloudFlare, permitiendo al servicio poder cachear mi página y distribuir las peticiones a lo largo de la CDN.

Tras configurar nuestros registros, CloudFlare se encargará de la gestión de nuestros registros mediante un panel de control. En él, además de la configuración de los registros, se nos permite especificar si queremos que determinada entrada sea manejada por el servicio o, por el contrario, sea nuestro servidor el que lo gestione. De esta forma podemos asegurarnos de tener dominios “reales” que no pasan por las cachés, útiles para determinados servicios o para tener una manera de ver la página real y no cacheada.

El panel de control de DNS en CloudFlare

Como se muestra en la imagen, utilizo la gestión de CloudFlare para la mayoría de entradas, dejando el servicio FTP de lado. Los servidores MX también son gestionados por mi servicio de alojamiento y no por la propia CloudFlare. Cuando tengamos nuestros registros configurados, deberemos esperar un período de unas 24-48 horas para que el control DNS pase completamente a CloudFlare. Desde ese momento, nuestro servidor ya estará replicado a lo largo de toda la red distribuída de contenidos. ¿Fácil o qué?

Una vez tengamos todo funcionando podremos personalizar los parámetros de rendimiento, cacheo y seguridad de CloudFlare, así como crear lo que se denomina como “regla” para dar la opción de no introducir determinados recursos en la red. Esto nos dejaría, por ejemplo, hacer que determinado directorio nunca se cachee. Pero de esto hablare en otro post con más detalles.

Si desconocías el funcionamiento de las CDN te recomiendo encarecida que te subas al carro, porque las ventajas son numerosas (y vuelvo a enumerar):

  • Nuestro contenido estará distribuído por muchos servidores en todo el globo.
  • Al estar distribuído, los usuarios de distintos ámbitos geográficos siempre solicitarán los recursos a un servidor cercano a su ubicación, garantizando un mayor rendimiento.
  • La caída de nuestro sevidor no significará que nuestro servicio se detenga, ya que al estar nuestro contenido repartido a lo largo de la CDN otro servidor podrá hacerse cargo de las peticiones.
  • Nuestro servidor estará usando mucho menos tráfico ya que la CDN manejará la mayor parte de las peticiones.
  • Los ataques de denegación de servicio lo tendrán bastante más difícil al tener que lidiar con la CDN, además de con nuestros propios servidores.

Esto tiene muy pocas desventajas, así que… ¡anímate!