Question Un CDN fonctionne-t-il même lorsque mon serveur est en panne?


Je suis un propriétaire de site Web qui envisage d'utiliser le cloudfront S3 d'Amazon. J'ai lu toutes les informations sur ce qu'un CDN peut faire, mais j'ai encore une question sans réponse.

Un CDN fonctionne-t-il même lorsque mon serveur principal est en panne? C'est la raison principale pour laquelle je m'y intéresse. Parce que mon serveur subit généralement des pannes fréquentes dues à une panne de courant ici au Mali.


10
2017-11-25 16:34


origine


Vous voudrez peut-être envisager CloudFlare, qui est a) gratuit et b) peut garder vos pages statiques en place pendant une panne. - ceejayoz


Réponses:


Cela dépend de qui héberge votre CDN. Si vous hébergez votre site Web sur un serveur et que le CDN est associé à un tiers, il est probable que votre CDN reste actif lorsque votre site Web est arrêté. Ce n'est peut-être pas le cas, car certains CDN ne diffusent que du contenu qu'ils peuvent vérifier sur votre site Web.

Remarque complémentaire, les CDN ne sont pas destinés à l'hébergement de l'ensemble de votre site Web. Donc, si vous pensez que vous pouvez en utiliser un pour remplacer votre hébergement Web ou l'utiliser comme une sorte de plan de basculement, vous vous trompez d'arborescence.

TL; DR - Vous devrez demander à votre fournisseur de CDN.


11
2017-11-25 16:41





Les CDN sont conçus pour l'évolutivité et les performances, mais pas pour la haute disponibilité. À tout moment, ils peuvent avoir besoin d'accéder aux fichiers d'origine.

La plupart des gens les utilisent pour stocker des fichiers statiques tels que des images, des fichiers css et javascript. Certains peuvent être configurés pour mettre en cache HTML, mais ce n'est que si vous avez un site Web complètement statique. Si c'était le cas, vous pourriez héberger le tout sur S3 sans avoir besoin d'un serveur.


10
2017-11-25 16:45





Généralement, oui, jusqu’à la TTL.

Lorsque vous utilisez des CDN, vous configurez généralement des TTL (durée de vie) pour votre contenu. Il s'agit d'un maximum d'ancienneté du cache avant de décider qu'il doit absolument actualiser le cache avec le contenu le plus récent. Par exemple, supposons que vous configuriez toutes les URL * .jpg pour avoir une durée de vie de 5 minutes.

Ensuite, si votre serveur tombe en panne, vous disposez de 5 minutes supplémentaires pour le réactiver avant que les utilisateurs ne le remarquent. Eh bien, au moins pour .jpgs. Eh bien, au moins pour les fichiers .jpgs qui ont été préalablement mis en cache.

De plus, certains CDN utilisent des fonctionnalités telles qu'Akamai NetStorage où vous pouvez télécharger du contenu directement sur le CDN - un contenu est attribué au CDN et il est invité à le servir directement a priori. Puisqu'il n'y a jamais de cache "à la demande" de style "à la demande", ce qui devrait bien sûr fonctionner lorsque votre serveur est en panne.

Comme les autres affiches l'ont noté, ce n'est pas pour cela que les CDN sont conçus et ils n'offrent AUCUNE garantie que ce comportement fonctionnera. Il se trouve que ça marche habituellement (et c'est génial quand on le regarde arriver!). Et bien sûr, pour des détails techniques spécifiques, vous devrez contacter votre fournisseur.


5
2017-11-25 17:59





Oui: les serveurs CDN continueront de fonctionner même lorsque votre site est en panne, ce qui est une bonne option pour gérer les pannes majeures. Vous avez assez de contrôle sur ce qui se passe pour pouvoir personnaliser l'expérience en fonction de vos ressources et de vos priorités. Les options entrent généralement dans ces catégories:

  1. Objets configurés pour la mise en cache (le plus souvent en définissant le paramètre Cache-Controlheader) devrait être disponible jusqu'à leur expiration. Certains CDN offrent la possibilité aux serveurs CDN d'extraire le contenu d'autres serveurs CDN, ce qui peut aider en cas de pannes et améliorer de manière générale les performances lorsque vos serveurs d'origine ont une latence comparativement élevée par rapport aux serveurs CDN.

  2. Certains CDN offrent la possibilité de servir du contenu qui a expiré lorsque votre serveur principal n'est pas disponible (par exemple, avec Fastly, vous pouvez activer les modes grace ou saint de Varnish). Évidemment, cela n’aidera pas le contenu qui n’a jamais été mis en cache, mais dans de nombreux cas, il pourra au moins garder votre page d’accueil principale, vos coordonnées, etc. en ligne pendant que vous travaillez à remettre vos serveurs en ligne.

  3. La plupart des CDN offrent la possibilité d’essayer plusieurs serveurs dorsaux afin que vous puissiez avoir un site de basculement distinct qui offre l’expérience qui convient à votre site: basculement vers un autre serveur ou site à fonctionnalités réduites, une page HTML statique, etc. Cela peut être utile en cas de catastrophe les défaillances d’hébergement, car vous avez la possibilité d’héberger avec une société complètement différente ou, dans le cas d’Akamai NetStorage, directement avec le fournisseur de CDN afin qu’ils prennent en charge la pile complète.

À l’exception de la troisième option, vous n’avez aucun contrôle sur ce qui sera mis en cache sur les serveurs CDN. La partie la plus importante du processus consiste donc à décider de la dégradation de votre site si diverses fonctionnalités ne sont pas disponibles: par exemple, si vous possédez Un contenu HTML raisonnable, même lorsque JavaScript échoue complètement, peut être utilisé uniquement avec un contenu de page fondamental, même si des fonctionnalités plus avancées échouent discrètement en arrière-plan.


5
2017-11-25 21:44



Excellent résumé! Akamai a Serve stale if unable to validate option de sorte que lorsque l'origine est en panne, il servirait le contenu même TTL est atteint. - Leon li
@Leonli le deuxième point pourrait probablement aussi utiliser un lien vers RFC 5861 puisque je crois que CloudFlare prend également en charge Cache-Control: stale-if-error maintenant aussi. - Chris Adams


La plupart des CDN mettent en cache le contenu (dynamique) pendant une période (TTL) depuis l'origine, dans ce cas votre serveur. Dans la console de gestion Cloudfront d'Amazon, le contrôle du cache d'un compartiment S3 est expliqué.

  1. Le comportement par défaut du S3 d'Amazon consiste à mettre en cache un objet 24 heures.

  2. Vous pouvez influencer le comportement par défaut en fournissant / écrivant un en-tête Cache-Control sur votre serveur d'origine ou un en-tête Expires.

    • Lorsque vous utilisez l'en-tête Cache-Control max-age, la valeur minimale est 0. À ce stade, Amazon contiendra votre serveur d'origine pour vérifier si l'objet a changé à chaque fois.

    • Lorsque vous utilisez l'en-tête Expires pour un objet, Amazon ne contactera pas votre serveur d'origine avant cette date.

J'espère que cela clarifie le comportement d'Amazon.


2
2017-11-25 20:54





J'ai été ingénieur de support chez CDN pendant plus d'un an et je dirai que toutes les réponses sont excellentes, mais IMO @ Chris-Adams a la meilleure réponse (si je pouvais voter de manière positive, je le ferais).

Une chose que nos clients font est de pointer www vers le CDN et 301 le TLD vers www. Si la durée de vie d'un objet expire, le bord servira le contenu expiré s'il est disponible en cache.

Cela dit, si la disponibilité (et le contenu frais) sont importants pour vous, alors je vous conseillerais de transférer votre origine (douleur dans le dos, je le sais) vers un hôte qui ne subit pas de fréquentes coupures de courant.


0
2017-11-26 00:16