Vous n'hébergez pas simplement le site entier avec le CDN, mais simplement votre contenu .
Je viens de me rendre compte que j'avais déjà répondu à une question similaire: Que fait akamaihd.net?
Image de WikiMedia
Donc, vos références de site http://akamai/myfile.ext
. Cela demandera myfile.ext
à akamai
. akamai
peut ensuite envoyer une redirection HTTP au serveur de contenu actuel.
Désormais, lorsque cette dernière étape sera mise en cache, tant mieux, toutes les futures demandes iront au serveur de contenu le plus proche.
Comment ça marche?
Supposons ce site:
<html>
<body>
<img src="http://cdn/oliver.png" />
</body>
</html>
Je demande ce site Web à partir de mon propre serveur Web. Le .html
fichier n'est pas hébergé avec cdn
. Le DNS de mon serveur Web non plus.
Demande initiale
Donc, mon navigateur a obtenu ce fichier HTML et l’analyse maintenant. Il trouve l'image référencée et note son emplacement http://cdn/oliver.png
. Il demande ce fichier.
Pour ce faire, il faut trouver l'adresse IP de cdn
. Dans notre exemple, cette adresse IP est 10.10.10.10
.
Avec cette adresse IP, il peut se connecter au cdn
serveur et demander /oliver.png
.
Emplacement géographique
Réalise maintenant cdn
: " Ce mec est allemand! ". Donc au lieu de m'envoyer la superbe photo que je voulais, il m'envoie une redirection HTTP en disant:
/oliver.png n'est pas ici. C'est à10.10.33.33/oliver.png
Donc, mon navigateur va demander 10.10.33.33
la photo (ce qui est probablement plus proche de moi).
Sérieusement?
Je ne dis pas que c'est ainsi que TOUTES LES CDN fonctionnent, mais ce serait une approche.
Vous pouvez également implémenter un démon DNS qui renvoie des résultats différents pour une recherche de nom en fonction de l'emplacement de l'auteur de la requête.
Mais je doute que cela se fasse dans la pratique. Mais peut-être que je ne peux tout simplement pas imaginer comment régler cela correctement. Voir la réponse de Fluffy pour savoir comment cela pourrait fonctionner.
Qui gère les CDN?
La plupart des acteurs mondiaux ont en quelque sorte leur propre réseau de diffusion de contenu. Certains fournisseurs délèguent simplement certains services à des CDN plus volumineux (comme Microsoft le fait avec les téléchargements MSDN). Et cela pourrait en quelque sorte toucher votre deuxième sujet.
Considérez cela, dans le MSDN, Microsoft propose des téléchargements de produits. Ces téléchargements sont ensuite fournis par Akamai. Si vous pouvez déterminer l'URL de ce téléchargement, vous pouvez simplement télécharger le produit sans jamais contacter Microsoft.
Est-ce un problème de sécurité? Pas vraiment, car ce qui est téléchargé est toujours protégé (par une clé de produit).
Mais qu'en est-il des autres données?
Si vos données sont pertinentes pour la sécurité, il ne s'agit pas d'un contenu CDN. Si vous ne voulez pas que quelque chose soit disponible aussi largement que possible, ne le mettez pas dans un CDN.
Une approche assez commune de CDN consiste à utiliser ce que l'on appelle " anycast ". La façon dont cela fonctionne est que vos serveurs distribués sont co-localisés avec des DNS qui répondent avec ce serveur comme destination; Par exemple, vous pouvez avoir trois serveurs dans différentes installations d'hébergement et leurs DNS respectifs affirment tous que leur adresse IP est l'adresse canonique de votre serveur (appelez-la, par exemple
content.example.com
). Les DNS sont chacun configurés pour avoir la même adresse IP globale, puis chacune des installations du serveur utilise les mises à jour BGP pour faire en sorte que la route vers le serveur le plus proche l'emporte. Ainsi, lorsque vous effectuez une recherche de nomcontent.example.com
, le plus rapide / le plus proche / le DNS le plus disponible répond à la demande avec son serveur HTTP.De cette manière, aucune astuce GeoIP n'est nécessaire, et le contenu le plus rapide vous sert toujours, quel que soit le serveur choisi - ce qui peut avoir un lien ou non avec son emplacement physique, en raison de la nature hétérogène d'Internet.
Je crois comprendre qu'Akamai fonctionne au moins partiellement de cette manière.
la source
Des CDN de type Origin Pull sont également disponibles.
Amazon Cloudfront est capable d'utiliser cette technique.
Vous configurez un fichier CNAME tel que media.example.com qui pointe vers le nom du serveur qui lui est attribué et laisse tout votre contenu sur votre serveur. Pour les images et le contenu que vous souhaitez diffuser via le CDN, utilisez media.example.com dans l'URL. La demande est envoyée sur le réseau de leur serveur et si le contenu n'est pas disponible, leurs serveurs extraient le contenu de votre serveur. Une fois dans le système, le contenu est distribué aux batteries de serveurs situées le plus près de l'endroit où la demande existe et y reste pour la durée de vie attribuée. Votre serveur ne voit plus aucun trafic sur le contenu mis en cache jusqu'à l'expiration de la durée de vie et à l'actualisation de Cloudfront.
la source
Akamai ne fonctionne pas de cette façon. Différents CDN fonctionnent différemment, mais Akamai n'effectue pas de anycast spécifiquement pour leurs serveurs Web.
Lorsqu'un utilisateur à New York le souhaite
www.acme.com
, le serveur de noms d'acme.com redirige ("délégués") vers un serveur de noms Akamai. Le serveur de noms Akamai voit où se trouve la machine qui pose la question (en fonction de son adresse IP) et renvoie l'adresse IP du meilleur serveur Akamai à servirwww.acme.com
.la source
Un grand résumé de la façon dont les travaux CDN d'Akamai peuvent être trouvés ici
En bref:
et comme mentionné dans l'article de blog mentionné ci-dessus, certaines grandes entreprises résolvent le DNS en utilisant leurs propres serveurs, ce qui peut réduire à néant certains avantages liés à l'utilisation d'un CDN.
la source
CDN fonctionne sur Anycast DNS. Anycast dns fonctionne sur Anycast ip. Anycast ip: Une adresse IP attribuée à plusieurs serveurs. Lorsque l'utilisateur demande le résolveur DNS, cette requête est gérée par le serveur le plus proche et fournit les données du serveur avec le moins de latence.
la source