Sie hosten nicht einfach die gesamte Site mit dem CDN, sondern nur Ihre Inhalte .
Mir ist gerade aufgefallen, dass ich vor einiger Zeit eine ähnliche Frage beantwortet habe: Was macht akamaihd.net?
Bild von WikiMedia
Also Ihre Site referenziert http://akamai/myfile.ext
. Dies wird angefordert myfile.ext
von akamai
. akamai
kann dann eine HTTP-Umleitung an den eigentlichen Content-Server senden .
Wenn dieser letzte Schritt zwischengespeichert wird, werden alle zukünftigen Anforderungen an den nächsten Content-Server gesendet.
Wie funktioniert das?
Nehmen wir diese Website an:
<html>
<body>
<img src="http://cdn/oliver.png" />
</body>
</html>
Ich fordere diese Website von meinem eigenen Webserver an. Die .html
Datei wird nicht mit gehostet cdn
. Weder ist der DNS meines Webservers.
Erstanfrage
Also hat mein Browser diese HTML-Datei bekommen und analysiert sie jetzt. Es findet das referenzierte Bild und merkt sich, dass es sich in befindet http://cdn/oliver.png
. Es fordert diese Datei an.
Dazu muss die IP-Adresse von ermittelt werden cdn
. In unserem Beispiel lautet diese IP-Adresse 10.10.10.10
.
Mit dieser IP-Adresse kann eine Verbindung zum cdn
Server hergestellt und eine Anfrage gestellt werden /oliver.png
.
Geo-Standort
Jetzt wird cdn
klar, " der Typ ist aus Deutschland! ". Anstatt mir mein tolles Bild zu senden, das ich wollte, schicke ich eine HTTP-Weiterleitung mit den Worten:
/oliver.png ist nicht hier. Es ist bei10.10.33.33/oliver.png
Also wird mein Browser 10.10.33.33
(der hoffentlich näher bei mir ist) nach dem Bild fragen .
Ernst?
Ich sage nicht, dass ALLE CDNs so funktionieren, aber es wäre ein Ansatz.
Sie können auch einen DNS-Daemon implementieren, der abhängig vom Standort des Absenders der Abfrage unterschiedliche Ergebnisse für eine Namenssuche zurückgibt.
Aber ich bezweifle, dass dies in der Praxis gemacht wird. Aber vielleicht kann ich mir einfach nicht vorstellen, wie ich das richtig einrichten soll. Sehen Sie sich die Antwort von fluffy an, wie das funktionieren könnte.
Wer betreibt CDNs?
Die meisten Global Player haben in gewisser Weise ein eigenes Netzwerk für die Bereitstellung von Inhalten (so würde ich annehmen). Einige Anbieter verlagern nur bestimmte Dienste auf größere CDNs (wie Microsoft bei MSDN-Downloads). Und das könnte Ihr zweites Thema irgendwie berühren.
Beachten Sie, dass Microsoft im MSDN Produktdownloads anbietet. Diese Downloads werden dann von Akamai bereitgestellt. Wenn Sie die URL dieses Downloads ermitteln können, können Sie das Produkt einfach herunterladen, ohne sich jemals mit Microsoft in Verbindung zu setzen.
Ist das ein Sicherheitsproblem? Nicht wirklich, weil das, was heruntergeladen wird, immer noch geschützt ist (durch einen Produktschlüssel).
Aber wie wäre es mit anderen Daten?
Wenn Ihre Daten sicherheitsrelevant sind, handelt es sich nicht um CDN-Material. Wenn Sie etwas nicht so weit wie möglich verfügbar sein sollen, nicht in einem CDN setzen.
Ein gängiger Ansatz für CDN ist die Verwendung von " Anycast ". Wie dies funktioniert, ist, dass Ihre verteilten Server mit DNSs zusammengestellt sind, die mit diesem Server als Ziel antworten. Sie könnten beispielsweise drei Server in unterschiedlichen Hosting-Einrichtungen haben und deren jeweilige DNSs behaupten, dass ihre IP-Adresse die kanonische für Ihren Server ist (nennen Sie es beispielsweise
content.example.com
). Die DNSes sind jeweils konfiguriert , um die gleiche globale IP - Adresse zu haben, und dann jede der Einrichtungen Server verwenden BGP - Updates , es so zu machen , dass der Weg zu den nächstgelegenen Server gewinnt - so , wenn Sie tun , um eine Namen - Suche aufcontent.example.com
, die schnellste / nächste / most available DNS antwortet auf die Anfrage mit seinem HTTP Server.Auf diese Weise sind keine GeoIP-Tricks erforderlich und Sie werden immer von dem Server bedient, der für Sie am schnellsten ist - was aufgrund der heterogenen Beschaffenheit des Internets möglicherweise nichts mit seinem physischen Standort zu tun hat.
Nach meinem Verständnis funktioniert Akamai zumindest teilweise auf diese Weise.
quelle
Ebenfalls erhältlich sind Origin Pull-CDNs.
Amazon Cloudfront kann diese Technik verwenden.
Sie richten einen CNAME wie media.example.com ein, der auf den zugewiesenen Servernamen verweist und all Ihre Inhalte auf Ihrem Server belässt. Für Bilder und Inhalte, die Sie über das CDN liefern möchten, verwenden Sie media.example.com in der URL. Die Anforderung wird an das Servernetzwerk gesendet. Wenn der Inhalt nicht verfügbar ist, rufen die Server den Inhalt von Ihrem Server ab. Sobald der Inhalt im System vorhanden ist, wird er an Serverfarmen verteilt, die dem Ort am nächsten sind, an dem der Bedarf besteht, und bleibt dort für die zugewiesene TTL. Ihr Server sieht keinen Datenverkehr mehr auf dem zwischengespeicherten Inhalt, bis die TTL abläuft und Cloudfront ihn aktualisieren muss.
quelle
Akamai funktioniert nicht so. Verschiedene CDNs funktionieren unterschiedlich, aber Akamai sendet speziell keine Nachrichten für ihre Webserver.
Wenn ein Benutzer in NY dies wünscht
www.acme.com
, leitet der Nameserver von acme.com ("Delegierte") an einen Akamai-Nameserver weiter. Der Akamai-Nameserver erkennt anhand seiner IP-Adresse, wo sich das Gerät befindet, das die Frage stellt, und gibt die IP-Adresse des nächstgelegenen / besten Akamai-Servers zurück, der bedient werden sollwww.acme.com
.quelle
Eine großartige Zusammenfassung der Funktionsweise von Akamais CDN finden Sie hier
Zusamenfassend:
Und wie in dem oben aufgeführten Blog-Beitrag erwähnt, lösen einige große Unternehmen DNS mithilfe ihrer eigenen Server auf. Dies kann einige der Vorteile der Verwendung eines CDN zunichte machen.
quelle
CDN arbeitet mit Anycast DNS. Anycast DNS funktioniert auf Anycast IP. Anycast-IP: Eine IP wird auf mehreren Servern zugewiesen. Wenn der Benutzer einen DNS-Resolver anfordert, wird diese Abfrage vom nächstgelegenen Server bearbeitet und die Daten vom Server werden mit der geringsten Latenz bereitgestellt.
quelle