Freies und kostenloses CDN für Jedermann

Ladezeiten sind das ein und alles einer Webseite. Natürlich außer dem Inhalt, der zählt meiner Meinung nach mehr als andere SEOgeschichten. In dem kurzen Artikel möchte ich aufzeigen, wie man unabhängig von dem Verwendeten CMS ein kostenloses CDN aufsetzt. Somit ist unter WordPress, Drupal, Typo3, Serendipity, Joomla, oder auch jekyll/Octopress das gleiche Verfahren anzuwenden. Plugins sind somit nicht nötig.

Worum geht es

Ein CDN, Content Delivery Network, besteht aus einem Ursprungsserver, welcher den Inhalt, den wir Ihm liefern, auf seine Schwesterserver verteilt. Jene sind im absoluten Idealfall in der Nähe des Besuchenden unserer Webseite, welcher dadurch natürlich eine Geschwindigkeitssteigerung der Ladezeiten erfährt.

Manche sind der Meinung, dass diese Wege minimale, zu ignorierende Ladezeiten beanspruchen.
Leider ist das interkontinental nicht richtig.
Ein Vergleich mit Bildern hilft die Situation besser einzuschätzen.

Webseitentest Testserver in Kanada
Webseitentest Testserver in Kanada über 4 Sekunden

 

Webseitentest Testserver in Frankfurt
Webseitentest Testserver in Frankfurt 2 Sekunden

Wenn eine Seite bei mir zum Beispiel länger als circa 5 Sekunden für das Laden in dem Browser braucht bin ich sehr dazu geneigt meinen Browser, oder das Tab zu schliessen. Natürlich kommt es nicht dazu, wenn die Seite ein Alleinstellungsmerkmal hat, eine für mich wichtige Seite ist. Ich gehe davon aus, dass meine Seite nicht in diese Kategorie bei vielen Benutzern gehört, aus diesem Grund sehe ich mich dazu geneigt die Ladezeiten zu minimieren.
Somit bekommt der Besucher doch noch eine Chance, mich und meine Seite einzuschätzen und kennenzulernen.

Anbieter für ein CDN gibt es wie Sand am Meer und auch haben sie Ihre berechtigte Kosten.
Es gibt aber auch die Möglichkeit anhand von freien Webdiensten seine Dateien abzulegen und im Idealfall kann dies zu besseren Ladezeiten führen. Das ist aber von Fall zu Fall abzuwägen.

Defintiv ist es auf jeden Fall eines:
Die Ersparnis von Speicherplatz auf dem System, welches die Webseite ausliefert.

Abschliessend zu der Überschrift, es geht um Ladezeiten und dem Einsparen von Speicherplatz auf dem Hostsystemen.

Allgemeine Vorgehensweise

  • Erstellen einer Subdomain, nicht zwingend notwendig
  • Vorbereiten des Speicherdienstes für die Ausgabe der Dateien
  • Erstellen einer .htaccess-Datei innerhalb der neu erstellten Subdomain, oder das bearbeiten der vorhandenen .htaccess-Datei
  • Setzen der Regeln für das Umschreiben der URLs durch den Webserver

Dropbox

  • Im Ordner Public einen Ordner Namens cdn erstellen
  • In diesem Ordner eine Beispieldatei ablegen und per Öffentlichen Link kopieren die Stammurl bekommen

Der wichtige Teil der URL hier einmal kursiv und fett dargestellt:
https://dl.dropboxusercontent.com/u/13188058/cdn/seraphynteikoorgQR.png

Das ist der grundlegende Pfad (http://cdn/$0) für den Eintrag in die .htaccess.
$0 nicht vergessen

Copy.com

  • Einen Ordner mit dem Namen cdn erstellen
  • Diesen Ordner freigeben an alle, welche die URL besitzen, die URL kopieren.
  • Die Beispieldatei hineinkopieren und mit einem anderen Browser einmal die URL aufrufen.

Der wichtige Teil der URL hier einmal kursiv und fett dargestellt:
seraphynteikoorgQR.png

Das ist der grundlegende Pfad (http://cdn/$0) für den Eintrag in die .htaccess
$0 nicht vergessen

htaccess

Für jede der oben genannten Dienste gilt natürlich der gleiche Eintrag in die .htaccess, nur der grundlegende Pfad zu welchem weitergeleitet werden soll ist natürlich ein anderer.

Für alle Bilder, PDF-Dateien,ZIP/RAR und MP3s wäre dies zum Beispiel:

RewriteCond   %{HTTP_HOST}   =www.webseite.de
RewriteRule   ^.+.(jpe?g|png|gif|pdf|zip|rar|mp3)$   http://cdn/$0   [NC,R=302,L]

Die Benutzer von wordpress können natürlich auch den ganzen Ordner media auf einen der Speicherdienste ablegen:

RewriteCond   %{HTTP_HOST}   =www.webseite.de
RewriteRule    ^wp-content/media/.+$   http://cdn/$0   [NC,R=302,L]

Über die Rewrite-Regeln findet man einiges an Informationen hier auf Apache.org. Man kann auch anstelle des temoprären Redirects R=302 einen permanenten R=301 setzen. Für Tests empfehle ich aber erst einmal diese Option.

Synchronisation

Das ist nun das einzige Manko an der Sache.
Entweder man bemüht rsync oder man macht es händisch. Für die WordPressbenutzer gibt es ein veraltetes Plugin, aber wenn ein Maintainer 3 Jahre nicht mehr das Plugin einem Update unterzieht. Ich empfehle es nicht. Dann sollte man eher das Plugin Backup to Dropbox nutzen und es manuell immer wieder anstossen.

Auf alle Fälle sollten die Einstellungen in den Chachingplugins des jeweiligen benutzten CMS beachtet werden.

Dieses System funktioniert natürlich mit jedem Anbieter, welcher einen Ordner freigeben lässt.

4 Gedanken zu „Freies und kostenloses CDN für Jedermann“

  1. Das ist echt mal eine interessante Idee, so etwas mit Dropbox und Co. zu bewerkstelligen. Muss ich mal mit einer Kopie meines Blogs testen. Danke für den Tipp.

    Was mich auch noch interessieren würde, ist mit was du die Messungen gemacht hast. Sprich welches Tool bzw. welcher Dienst ist auf den beiden Screenshots zu sehen?

  2. Hallo,

    ich habs leider nicht ganz verstanden ich hab z.b nun eine copy.com id (url), was genau muss ich machen damit meine bilder in form von domain.de/meinbild.jpg angezeigt werden und nicht mehr mit coyp.com/chshs7s7/CDN/foto.jpg.

    Mein Hoster erlaubt nur erstellung von subdomains mit ziel ip :( bitte um info

    • Du sollst auch einen Eintrag in Deiner htaccess vornehmen wie im unteren Teil beschrieben.
      Diese leiten dann automatisch auf die Dateien in den freigegebenen Ordner von Copy.com oder Dropbox.com weiter ( beschrieben als der grundlegende Pfad).
      In der allgemeinen Vorgehensweise steht auch, dass die Subdomain nicht zwingend erforderlich ist.
      Somit ist Dein grundlegender Pfad http://copy.com/chshs7s7/CDN/
      Was in dem htaccess-Beispiel:

      RewriteCond   %{HTTP_HOST}   =www.webseite.de
      RewriteRule   ^.+.(jpe?g|png|gif|pdf|zip|rar|mp3)$   http://copy.com/chshs7s7/CDN/$0   [NC,R=302,L]

      ergibt.

Kommentare sind geschlossen.