Qué es Cloudflare y por qué deberías usarlo en tu página web

Si has seguido nuestro artículo sobre cómo crear y publicar tu propia página web con Raspberry Pi desde casa, este artículo te va a interesar:

Publica tu página web con Raspberry Pi desde casa
Configura tu página web personal con nginx desde tu casa y compra un dominio en Namecheap para acceder a tu página desde el mundo entero.

Hoy vamos a hablar sobre proxies inversos y redes de distribución de contenidos, o CDN (de content delivery network, en inglés) y de cómo puedes mejorar el rendimiento de tu página web y la experiencia de tus usuarios de forma gratuita ofreciendo estos servicios a través de Cloudflare.

¿Qué es una CDN?

Una red de distribución de contenido es un conjunto de servidores web distribuidos geográficamente por un área de interés (que podría ser el mundo entero), que tienen una copia de tu página web (de tus contenidos) para de esta manera poder servirlos a los usuarios que los soliciten según su distancia física a ellos.

Sin CDN (a la izquierda) vs CDN (a la derecha).

De esta manera, cada usuario cargará tu página web desde el servidor de la red CDN más cercano, lo que en la práctica se traduce a cargas de la página más rápidas y con menor carga en nuestros servidores, ya que las peticiones de página web se distribuyen entre los servidores de la red en lugar de ir todas a nuestro servidor en casa.

¿Qué es un proxy inverso?

Un proxy inverso es un servidor que se encuentra entre nuestros servidores y el resto de internet, de la siguiente manera:

Diagrama de proxy inverso.

Añadir este paso adicional entre nuestros clientes y el servidor de origen (nuestra Raspberry Pi en casa), tiene una serie de ventajas:

  • Protección ante ataques: El proxy actúa de filtro y protege los servidores de origen;
  • equilibramiento de la carga: El proxy puede distribuir las peticiones globales entre diferentes servidores de origen (en nuestro caso la CDN);
  • almacenamiento en caché: Si el proxy tiene nuestros contenidos almacenados desde la última actualización, es capaz de servir estos contenidos sin cargar al servidor de origen;
  • encriptación SSL: El proxy puede encargarse de la encriptación con los clientes y de esta manera liberar al servidor de origen de esta tarea.

¿Qué es Cloudflare?

Bien, han quedado claro las ventajas de una CDN y proxy inverso, pero seguramente te estarás preguntando como podemos implementar algo así. Pues estamos de suerte, porque existen servicios gratuitos que nos ofrecen todo esto (y más).

En este artículo vamos a hablar de Cloudflare, uno de los servicios de CDN y proxy más conocidos y el que usamos en Ardumaster.com, y el que recomiendo por su facilidad de uso:

¿Cloudflare qué es? Seguridad y rendimiento
¿Para qué sirve la red Cloudflare España? Somos especialistas en la arquitectura, seguridad y rendimiento de sitios web.
Página principal de Cloudflare.

Cloudflare nos ofrece una versión gratuita de sus servicios, con la esperanza de que en el futuro nos pasemos a la gama de pago, aunque la versión gratuita es mucho más que suficiente para proyectos amateur.

Configuración de Cloudflare

Lo primero que haremos es crear una cuenta en Cloudflare:

¿Cloudflare qué es? Seguridad y rendimiento
¿Para qué sirve la red Cloudflare España? Somos especialistas en la arquitectura, seguridad y rendimiento de sitios web.
Página principal de Cloudflare.

A continuación añadiremos un domínio nuevo:

Hacemos clic en "Agregar un sitio".

Introduciremos el nombre de nuestro dominio:

Escribimos el nombre de nuestro dominio.

Y seleccionamos el plan gratuito:

Seleccionamos el plan gratuito de Cloudflare.

Cloudflare lo escaneará y nos propondrá los siguientes pasos:

Cloudflare nos indica que debemos cambiar los servidores de nombres.

Para que Cloudflare pueda hacer de proxy, necesitamos cambiar los servidores de nombres por defecto de nuestro registrador por los de Cloudflare. En nuestro caso, eso significa cambiar la configuración de Namecheap: Primero vamos a Namecheap, accedemos a la configuración de nuestro dominio y cambiamos los servidores de nombres por los sugeridos por Cloudflare:

Hacemos clic en Custom DNS y copiamos los servidores DNS que nos indica Cloudflare.

Ahora naveguemos hasta el panel de DNS de nuestro dominio en Cloudflare:

Navegamos hasta el panel de DNS.

Y veremos nuestros registros:

Los registros DNS de Ardumaster.com.

¿Puedes encontrar el problema? Efectivamente, muestra una IP estática, pero la nuestra es dinámica, por lo que tendremos que decirle a Cloudflare como actualizarla en la siguiente sección.

Configura la IP dinámica en Cloudlfare con DNS-O-Matic

¿Recuerdas como tuvimos que actualizar la IP dinámica de nuestro servidor en nuestro registrador de dominios (Namecheap si seguiste nuestro artículo)? Vamos a tener que hacer lo mismo para Cloudflare, pero no podremos hacerlo directamente con DDClient:

Por fortuna, Cloudflare nos permite actualizar sus registros mediante un servicio gratuito llamado DNS-O-Matic, que sí que podemos actualizar mediante DDClient, por lo que tendremos que añadir un paso más a la actualización de nuestra IP, pero no es demasiado complicado.

Empezaremos creando una cuenta en DNS-O-Matic:

DNS-O-Matic | Distribute dynamic IP changes to multiple services (dnsomatic.com)
DNS-O-Matic (dnsomatic.com) provides you a free and easy way to announce your dynamic IP changes to multiple services with a single update.

Ahora añadiremos un servicio y seleccionaremos “Cloudflare”:

Añadimos un servicio de CloudFlare a DNS-O-Matic.

Rellenamos los datos. Para esto necesitaremos la API global de Cloudflare, que podemos encontrar dirigiéndonos a nuestra cuenta:

Abrimos la configuración de nuestra cuenta en Cloudflare.

Abrimos el panel de “Tokens de API”:

Vamos a la sección de Tokens de API.

Y hacemos clic en “ver” el API global para copiarlo:

Nos pedirá la contraseña para ver esta clave. Trátala como una contraseña, no la compartas.

De esta manera, rellenamos el cuadro de DNS-O-Matic con la siguiente información:

  • Email: Correo electrónico de Cloudflare
  • API Token: API Global de Cloudflare
  • Hostname: “dynamic”
  • Domain: Tu dominio
Servicio de DNS-O-Matic rellenado.

Y hacemos clic en “Update account info”

Ahora necesitamos actualizar DNS-O-Matic con nuestro DDClient. Si no lo tienes instalado, te será muy útil la guía que publicamos en el artículo sobre crear tu propia página web:

Publica tu página web con Raspberry Pi desde casa
Configura tu página web personal con nginx desde tu casa y compra un dominio en Namecheap para acceder a tu página desde el mundo entero.
Enlace directo a DDclient.

Cuando ya lo tengas instalado, edita la configuración de DDClient:

ardumaster@little-monkey:~ $ sudo nano /etc/ddclient.conf
Editamos el archivo de configuración de DDCLient.

Y añadimos el siguiente registro:

##
## DNS-O-Matic account-configuration
##
server=updates.dnsomatic.com
protocol=dyndns2
login=USUARIO
password='CONTRASEÑA'
all.dnsomatic.com

Recuerda cambiar usuario y contraseña por tus credenciales de DNS-O-Matic.

Puedes ejecutar DDClient para comprobar que todo funciona correctamente:

ardumaster@little-monkey:~ $ sudo ddclient -v
La opción -v indica a DDClient que nos dé más información sobre la actualización.

Ya tenemos casi todo listo, solo falta añadir unos registros DNS a Cloudflare para que DNS-O-Matic los actualice.

Volvemos al panel de DNS y modificamos los registros tal que tenemos un registro de tipo “A” que se llame dynamic y registros de tipo “CNAME” con nombre “tu-dominio.com” y “www” que apunten a “dynamic.tu-dominio.com” y “tu-dominio.com”, respectivamente:

Tipo Nombre Contenido
A dynamic 83.48.40.240
CNAME ardumaster.com dynamic.ardumaster.com
CNAME www ardumaster.com

Con esto ya tenemos un dominio en Cloudflare que se actualice automáticamente.

Te animo a que aproveches y explores el resto de ventajas que te ofrece Cloudflare, incluyendo el servicio de encriptado o la bandeja de estadísticas de uso de tu página web.

Conclusiones

Ya puedes presumir de tener una página web más segura y rápida para tus usuarios, si aún tienes pocas visitas, es posible que no se note mucho, pero no te preocupes, ¡en nada tendrás un sitio popular y tus esfuerzos empezarán a dar sus frutos!