CDN: Unterschied zwischen den Versionen

Aus bytewerk-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(fertig... :))
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
<div style="float:right;margin-top:30px">
__TOC__
</div>
== CDN - Content Distribution Network ==
== CDN - Content Distribution Network ==


Ein Content Distribution Network (deutsch: Verteilernetzwerk für Inhalte) dient dazu die Last und die 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.
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.
=== Ziele ===


=== Teilnehmer ===
* [[Benutzer:xorior|xorior]]
* [[Benutzer:fake|fake]]
* [[Benutzer:thomic|thomic]]
* du?


=== Script zum Update des CDN ===
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 perfomant zu verteilen.


==== Script ====
<pre>
#!/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/
</pre>
==== Anmerkungen ====
# Das Script lädt die Inhalte vom ''MASTER_SERVER'', falls diese neu sind oder falls schon vorhandene Inhalte aktualisiert wurden.
# Anschließend legt es die Dateien in einer Ordnerstruktur ab, die von der ''index.lst'' des ''MASTER_SERVER'' vorgegeben wird.
# 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 ====
# Das Script abspeichern & anpassen.
# Cronjob einrichten, der das Script aufruft (ca. alle 10 min)
#* Bsp: 3,13,23,33,42,52 * * * * /path/to/bingocdn.sh
# Mit [[Benutzer:fake|fake]] in Verbindung setzen und einen vHost anfordern.
#* IPv4-Adresse und, falls vorhanden, IPv6-Adresse des Servers an fake übermitteln
# vHost auf cdnX.bingo-ev.de einrichten
#* Das ''X'' wird durch die Zahl ersetzt, die fake dir zuteilt
# Im bingo-document-root (= ''CLIENT_DIR'' im Script) eine '''index.php''' mit folgendem Inhalt anlegen:
#* <pre> <? header("Location: http://www.bingo-ev.de"); ?> </pre>


[[Kategorie:Projekt]]
[[Kategorie:Projekt]]

Aktuelle Version vom 19. April 2010, 22:30 Uhr

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"); ?>