StartseiteWordPress / 23. Juni 2010

CorelCDN: In WordPress hochgeladene Bilder vom CDN ausliefern lassen

Speed

Statische Elemente einer Webseite sollten bestenfalls von einem Content Delivery Network (kurz CDN) ausgeliefert werden – die geografisch vorteilhafte Positionierung der Knotenpunkte sorgt dabei für spürbare Performance. In einem der Artikel wurde Google App Angine als möglicher CDN-Kandidat vorgestellt, in WordPress würden für diesen Zweck programmierte Plugins die Übertragung der Medien auf den Google-Server übernehmen: Der Upload geschieht selbsttätig im Hintergrund, der Blogger kümmert sich um keine Details. Soll die Herrschaft über die eigenen Daten jedoch nicht verloren gehen, so gibt es mit CoralCDN dennoch eine elegante Alternative, CDN auf schlaue Art (also ohne direkte Uploads auf “Fremdserver”) zu nutzen.

Datenabgleich zwischen Blog und CDN
CorelCDN gehört zu den ältesten Netzwerken mit kontinental verstreuten Rechnern. Im Grunde genommen ist CorelCDN nichts anderes als ein Webproxy, welcher die Anfragen entgegen nimmt, zwischen speichert und bei Anforderungen aus dem Cache des Netzwerkes ausliefert. Es reicht aus, eine beliebige Datei im Web mit der Internet-Adresse von CorelCDN zu verknüpfen. Bei erstem Aufruf der – einem Muster entsprechenden – URL holt sich der Dienst automatisiert die angeforderte Datei auf eigene Server und bewahrt diese zwecks Verteilung für einen bestimmten Zeitraum auf. Wiederholte Requests auf die gespeicherte Datei würden ab dem Punkt nicht mehr vom eigenen Webspace, sondern aus dem Cache des CDN kommen.

Das Prinzip überzeugt: Beim Hochladen in WordPress müssen die Daten nicht auch noch manuell auf weitere entfernte Server übertragen werden, um Teil eines CDN zu werden (und dabei im Blog verbleiben). Auch können Bilder, Videos und andere Medien auf eigenem Webspace jederzeit verwaltet, ersetzt oder gelöscht werden, ohne eine entsprechende Kopie bei CorelCDN pflegen zu müssen. Erstaufruf z.B. eines Bildes sorgt beim Dienstleister für eine vollautomatische Synchronisierung des Inhalts – entsprechend lang dauert auch die allererste Darstellung des Bildes, weil das Element erst in den Cache befördert werden muss (Initialaufruf).

Unkomplizierte Umleitung auf CDN
Um CorelCDN im WordPress Blog verwenden zu können, reicht eine an die eigenen Pfade angepasste .htaccess Datei im uploads Verzeichnis. Vorgehensweise: Datei anlegen, den Schnipsel von unten einfügen, den Pfad zu uploads editieren, per (S)FTP hochladen. Weitere Schritte sind nicht notwendig. Ab dem Zeitpunkt kümmert sich der CDN-Hoster um die Abbildung der Bilder.

.htaccess Datei im Uploads-Ordner der WordPress Instanz
.htaccess Datei im uploads Ordner der WordPress Instanz

Quelltext der Datei .htaccess

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx
RewriteCond %{QUERY_STRING} !(^|&)coral-no-serve$
RewriteRule ^(.*)$ http://%{HTTP_HOST}.nyud.net/wp-content/uploads/$1 [R,L]

Fazit
Blogger, die auf der Suche nach einer Cookie-losen Domain für statische Elemente (CSS, JS, Images etc.) sind und nebenbei Traffic einsparen wollen, für sie ist CorelCDN eine Überlegung wert. Professionelle Webautoren mit überdurchschnittlich vielen Besuchern sollten allerdings auf den kostenlosen CDN verzichten – Beschränkungen wie maximal 50 MB große Dateien (Stichwort Videos), mehrere Hundert GB am Tag und eine Cache-Dauer von nur 5 Minuten machen den Dienst für anspruchsvolle Projekte weniger attraktiv.

Sergej Müller

[Der Autor] Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das weltberühmte und patentierte SEO-Plugin für WordPress-Blogs.

Soziale Werkzeuge

14 Kommentare zum Artikel

78 Tage zuvor | #1 LexX Noel

Was für ein Programm, das da auf dem Bild zu sehen ist?

LexX Noel
78 Tage zuvor | #2 Sergej Müller

Transmit.

Sergej Müller
78 Tage zuvor | #3 Robert

Wenn ich deinen Ansatz richtig verstehe, erfüllt dieser Ansatz die Forderung nach Trafficersparnis und cookieloser Domain, kostet im Gegenzug aber den Besuchern einen zusätzlichen HTTP-Request für den Redirect mit unter Umständen zusätzlicher DNS-Auflösung für den CDN-Proxy auf nyud.net und damit u.U. etliche hundert Millisekunden Seitenaufbauzeit?

Robert
78 Tage zuvor | #4 Sergej Müller

Robert, absolut richtig. Das ist der Preis für die “Synchronisierung”. Wobei ich sagen muss, im Testbetrieb habe ich keinen gravierenden Unterschied bei Ladezeiten der Seiten festgestellt. Aber klar, den Initial-Aufruf merkt man schon.

Sergej Müller
78 Tage zuvor | #5 Alexander Dittrich

Läuft bei mir nicht … diese .htaccess blendet alle Bilder aus. Zudem erscheint erstmal eine hässliche Meldung dass Firefox die Seite gehindert hat auf eine andere Seite umzuleiten – kein vertrauenerweckendes Feature.

Alexander Dittrich
78 Tage zuvor | #6 Sergej Müller

@Alexander Dittrich
Mehr als einen Artikel nach zahlreichen erfolgreichen Tests zu verfassen, kann ich auch nicht.

Sergej Müller
78 Tage zuvor | #7 Andi Licious

Aloha Sergej,
ich hätte ja nicht gedacht, dass CDN tatsächlich noch mal zur Sprache kommt *lach* Finde es allerdings ganz cool… zumindest wenn man mal kein dicktes Budget für seine Seite zur Verfügung hat (zB. Werbefrei). Schöner Artikel. :)

Cheers, Andi

Andi Licious
78 Tage zuvor | #8 Sergej Müller

Andi, danke dir. Demnächst soll hier noch mehr zum Thema CDN kommen, vor allem für App Engine, da ich da sehr aktiv bin und viele Tipps loswerden könnte.

Sergej Müller
77 Tage zuvor | #9 Thomas Scholz

Sergej, danke für den Tipp! Ich denke, dieses CDN eignet sich besonders für Seiten mit vielen wiederkehrenden Besuchern (Foren, Apps, Manuals). Der Expires-Header gilt für ein komplettes Jahr, was das Caching sehr erleichtert.

Thomas Scholz
77 Tage zuvor | #10 Sergej Müller

Ich kenne sehr viele (internationale) Blogger, die nicht alle Bilder aus dem Blog dort “hosten” lassen, sondern nur ausgewählte. So werden gern großformatige Images oder auch Videos (die nicht über Youtube & Co. eingebunden werden) mit CorelCDN verknüpft. Auch wenn beispielsweise Infografiken über Social Media verbreitet werden, so wird gleich die CorelCDN-URL genannt, um somit Traffic und Auslastung eigener Maschine zu schonen.

Sergej Müller
73 Tage zuvor | #11 Torsten

»mit kontinental zerstreuten Rechnern« – nun, die Rechner sind wahrscheinlich eher verstreut, zerstreut mag allenfalls so mancher Server-Administrator sein ;-)

Torsten
73 Tage zuvor | #12 Sergej Müller

@Torsten
Danke für den netten Hinweis. Ist angepasst.

Sergej Müller
73 Tage zuvor | #13 Monika

ist doch ….. jetzt meckern die, weil zuviele redirects da sind…

am liebsten wären da wohlbildlose Fotogalerien oder so :(

Monika
73 Tage zuvor | #14 Sergej Müller

Wie viele Abrufe hast du denn? Eigentlich sind die da recht großzügig.

Sergej Müller

Kommentar verfassen