Credit : Illustration backtotheweb.fr
Mettre en place un CDN gratuit avec Cloudflare
Mettre en place un CDN gratuit avec Cloudflare
C'est le genre de manip qu'on fait une fois et qu'on oublie. D'où cet article.
Cloudflare propose un plan gratuit extremement genereux qui inclut un CDN mondial, un certificat SSL, une protection DDoS et un WAF basique. Voici comment le configurer correctement.
Etape 1 : Ajouter votre domaine
- Creez un compte sur cloudflare.com
- Cliquez sur "Add a site"
- Entrez votre domaine (ex: monsite.fr)
- Choisissez le plan Free
- Cloudflare scanne vos enregistrements DNS existants
Etape 2 : Configurer les DNS
Cloudflare vous donne deux nameservers (ex: aria.ns.cloudflare.com et bob.ns.cloudflare.com). Changez les nameservers chez votre registrar.
Verifiez vos enregistrements DNS :
Type Nom Contenu Proxy
A monsite.fr 203.0.113.10 Proxied (orange)
A www 203.0.113.10 Proxied (orange)
MX monsite.fr mail.monsite.fr DNS only (gris)
TXT monsite.fr v=spf1 ... DNS only (gris)
Important : les enregistrements MX et TXT doivent rester en mode "DNS only" (nuage gris). Seuls les enregistrements web (A, AAAA, CNAME) doivent etre en mode "Proxied" (nuage orange).
Etape 3 : Configurer le mode SSL
Allez dans SSL/TLS > Overview. Les modes disponibles :
- Off : pas de SSL (deconseille)
- Flexible : SSL entre visiteur et Cloudflare uniquement (deconseille)
- Full : SSL de bout en bout avec certificat auto-signe
- Full (Strict) : SSL de bout en bout avec certificat valide
Choisissez Full (Strict) et installez un certificat sur votre serveur :
# Installer un certificat Let's Encrypt
sudo certbot --nginx -d monsite.fr -d www.monsite.fr
Ou utilisez un certificat d'origine Cloudflare (SSL/TLS > Origin Server > Create Certificate), valable 15 ans.
Etape 4 : Regles de cache
Allez dans Caching > Configuration :
- Caching Level : Standard
- Browser Cache TTL : Respect Existing Headers
- Always Online : On
Pour forcer le cache sur certaines pages, utilisez les Cache Rules :
Regle 1 : Cache agressif sur les assets
Si : URI Path contient /wp-content/ OU /assets/
Alors : Cache eligible, Edge TTL = 1 mois, Browser TTL = 1 semaine
Regle 2 : Bypass cache pour l'admin
Si : URI Path commence par /wp-admin/ OU /wp-login
Alors : Bypass cache
Etape 5 : Page Rules (3 gratuites)
Les Page Rules permettent des actions avancees :
Regle 1 : Redirection www
*www.monsite.fr/*
-> Forwarding URL (301) -> https://monsite.fr/$1
Regle 2 : Forcer HTTPS
http://*monsite.fr/*
-> Always Use HTTPS
Regle 3 : Cache Everything sur les pages statiques
monsite.fr/blog/*
-> Cache Level: Cache Everything, Edge Cache TTL: 4 heures
Etape 6 : WAF et securite
Dans Security > WAF :
- Activez le Bot Fight Mode
- Activez les Managed Rules (gratuit : regles de base)
- Configurez le Security Level sur "Medium"
Bloquez des pays ou des IP dans Security > WAF > Custom Rules :
Nom : Bloquer pays suspects
Expression : (ip.geoip.country eq "XX")
Action : Block
Verifier que Cloudflare fonctionne
# Verifier les headers
curl -I https://monsite.fr
# Vous devriez voir :
# cf-cache-status: HIT
# cf-ray: 8a1b2c3d4e5f-CDG
# server: cloudflare
Purger le cache
# Via API Cloudflare
curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" \
-H "Authorization: Bearer VOTRE_TOKEN" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'
Cloudflare est un complement ideal a un hebergement IONOS : votre serveur gere le contenu dynamique tandis que Cloudflare met en cache et distribue le contenu statique mondialement.