web-dev-qa-db-fra.com

Comment fonctionne un CDN comme CloudFlare?

Ce que j'ai compris jusqu'ici:

  • Vous conservez votre hébergement Web actuel, mais vous modifiez 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.

J'aimerais maintenant connaître les détails techniques de ce mécanisme. Voici quelques-unes de mes questions:

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

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

  3. Qu'en est-il des demandes POST sur mon site (par exemple, un visiteur qui télécharge des données via Ajax, qui est ensuite stocké 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 ne fait que relayer la demande Ajax à l'hôte Web d'origine?

23
Šime Vidas
  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 les CSS sont mis en cache, mais vous pouvez définir le niveau de cache par zone et définir les règles de page pour remplacer ce qui est mis en cache ou ne doit pas l'être. Le code HTML statique peut être forcé à être mis en cache par une règle de page, mais le contenu dynamique ne le peut évidemment pas. La seule exception est si vous avez le plan Business ou Enterprise, ou si vous vous inscrivez via certains partenaires d'hébergement, où vous aurez accès à la technologie Railgun dans laquelle CloudFlare ne récupérera que les informations modifiées 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 avec des en-têtes de cache sur l'Origine et/ou en définissant le cache TTL sur votre zone dans l'interface utilisateur de CloudFlare.
  3. Les publications doivent toujours être envoyées à l’origine, donc CloudFlare les transmet simplement. 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.

23
James O'Gorman

Juste pour ajouter un peu plus de clarté:

Quora contient un très bon article sur comment CloudFlare fonctionne .

Quelles ressources de site sont affectées? Seulement ceux statiques? 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. CloudFlare met-il toutes ces images en cache sur chacun de leurs centres de données et les diffuse ensuite à partir de ces centres de données?"

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

Remarque: nous ne mettrons pas en cache les ressources tierces présentes sur votre site (Flickr, Google, Facebook, etc.).

5
damoncloudflare

Pour ajouter à la réponse de Damon:

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

cloudflare.com/features-page-rules

En outre, si vous avez exploité au maximum le nombre de règles de pages disponibles dans votre plan actuel, vous pourrez bientôt acheter des règles supplémentaires sans modifier les plans.

1
RyanK