Comment fonctionne un CDN comme CloudFlare?

23

Ce que je comprends jusqu'à présent:

  • Vous conservez votre hébergement Web actuel, mais vous changez les serveurs DNS de votre site des serveurs DNS de votre hébergement actuel aux serveurs DNS de CloudFlare.
  • CloudFlare sert les ressources de votre site Web à partir de plusieurs centres de données à travers le monde.

Maintenant, je voudrais connaître les détails techniques de ce mécanisme. Voici quelques-unes des questions que j'ai:

  1. CloudFlare agit-il comme un proxy de cache? Disons que j'ai un tas d'images sur les pages de mon site. CloudFlare met-il en cache toutes ces images sur chacun de leurs centres de données, puis les sert-il à partir de ces centres de données?

  2. Quelles ressources du site sont affectées? Seuls les statiques? Qu'en est-il des pages Web elles-mêmes (les documents HTML)? Que faire si les pages sont générées dynamiquement par mon serveur? Comment CloudFlare s'assure-t-il de toujours diffuser la version la plus récente de la page?

  3. Qu'en est-il des demandes POST sur mon site (par exemple, un visiteur téléchargeant des données via Ajax qui sont ensuite stockées dans la base de données)? Ce truc doit être exécuté sur mon serveur. Donc, CloudFlare n'augmente pas (et ne peut pas) augmenter les performances de ce processus, non? Donc, CloudFlare relaie simplement la demande Ajax à l'hébergeur d'origine?

Šime Vidas
la source

Réponses:

23
  1. Oui, c'est un proxy inverse de mise en cache.
  2. "Ça dépend". Par défaut, seuls les éléments tels que les images et le CSS sont mis en cache, mais vous pouvez définir le niveau de cache par zone et définir des règles de page pour remplacer ce qui est mis en cache ou ne doit pas l'être. Le HTML statique peut être forcé d'être mis en cache par une règle de page, mais le contenu dynamique ne le peut évidemment pas. L'exception ici est si vous avez le plan Business ou Enterprise, ou si vous vous inscrivez via certains partenaires d'hébergement, où vous avez accès à la technologie Railgun grâce à laquelle CloudFlare ne récupérera que les informations qui ont changé sur une page, même si elle est dynamique. Si vous avez configuré CloudFlare pour tout mettre en cache, vous devez contrôler le délai d'expiration du cache soit avec des en-têtes de cache sur l'origine et / ou définir le TTL du cache sur votre zone dans l'interface utilisateur CloudFlare.
  3. Les POST doivent toujours être envoyés à l'origine, donc CloudFlare ne fait que les passer directement. Vous devriez toujours obtenir une augmentation des performances car CloudFlare utilise anycast pour servir DNS et HTTP à partir du centre de données le plus proche.

Divulgation complète: je travaille pour CloudFlare.

James O'Gorman
la source
5

Juste pour ajouter un peu plus de clarté:

Il y a un assez bon article sur Quora sur le fonctionnement de CloudFlare .

Quelles ressources du site sont affectées? Seuls les statiques? Qu'est-ce que CloudFlare met en cache par défaut .

"CloudFlare agit-il en tant que proxy de cache? Disons que j'ai un tas d'images sur les pages de mon site.

Vous pouvez étendre notre mise en cache au-delà du contenu statique avec PageRules.

Remarque: Nous ne mettrons pas en cache les ressources tierces qui se trouvent sur votre site (Flickr, Google, Facebook, etc.).

damoncloudflare
la source
1

Pour ajouter à la réponse de Damon:

Vous pouvez trouver des didacticiels vidéo utiles pour configurer les règles de page les plus populaires / recommandées avec CloudFlare ici:

cloudflare.com/features-page-rules

De plus, si vous avez optimisé vos règles de page disponibles sur votre plan actuel, vous pourrez bientôt acheter des règles supplémentaires sans changer de plan.

RyanK
la source