CDN

Aus bytewerk-Wiki
Zur Navigation springen Zur Suche springen

CDN - Content Distribution Network

Ein Content Distribution Network (deutsch: Verteilnetzwerk für Inhalte) dient dazu die Last und Kosten bei der Verteilung von großen (meist multimedialen) Inhalten zu teilen, um so eine möglichst schnelle Anbindung für den Content-User und möglichst geringe Kosten für den Content-Provider zu gewährleisten.

Ziel

Da wir, das bytewerk, und unser Trägerverein bingo e.V. ab und an Videos und Materialien von unseren Workshops, Schulungen und Vorträgen veröffentlichen, möchten wir dieses Netzwerk dazu nutzen, diese möglichst kostengünstig für den Verein und trotzdem performant zu verteilen.

Teilnehmer

Script zum Update des CDN

Script

#!/bin/bash
MASTER_SERVER="cdn1.bingo-ev.de"
CLIENT_DIR="/path/to/bingo-document-root" #example /var/www/bingo/

for i in $(wget -qO - "http://$MASTER_SERVER/index.lst"|cut -f 1|sed -e "s/^/http:\/\/$MASTER_SERVER/")
do
        wget -q -N -x -nH --directory-prefix="$CLIENT_DIR" $i
done
echo "CDN-Update:" $(date) >> /path/to/log/directory/bingocdn.log #usually /var/log/

Anmerkungen

  1. Das Script lädt die Inhalte vom MASTER_SERVER, falls diese neu sind oder falls schon vorhandene Inhalte aktualisiert wurden.
  2. Anschließend legt es die Dateien in einer Ordnerstruktur ab, die von der index.lst des MASTER_SERVER vorgegeben wird.
  3. Zum Abschluss wird in die Datei bingocdn.log ein Eintrag geschrieben, wann das Script zum letzten Mal durchgelaufen ist.

Mitmachen

Voraussetzungen

  • Root-Server (evtl. vServer)
  • 100 MBit Internetanbindung
  • mind. 10 GB freien Speicherplatz
  • viel Freitraffic

Tutorial

  1. Das Script abspeichern & anpassen.
  2. Cronjob einrichten, der das Script aufruft (ca. alle 10 min)
    • Bsp: 3,13,23,33,42,52 * * * * /path/to/bingocdn.sh
  3. Mit fake in Verbindung setzen und einen vHost anfordern.
    • IPv4-Adresse und, falls vorhanden, IPv6-Adresse des Servers an fake übermitteln
  4. vHost auf cdnX.bingo-ev.de einrichten
    • Das X wird durch die Zahl ersetzt, die fake dir zuteilt
  5. Im bingo-document-root (= CLIENT_DIR im Script) eine index.php mit folgendem Inhalt anlegen:
    •  <? header("Location: http://www.bingo-ev.de"); ?>