Logbuch

CDN einrichten in Contao am Beispiel von Cloudfront und Cloudflare

Testen

Wer einen Performance-Vergleich anstrebt, sollte natürlich testen, bevor er den CDN einrichtet - dies nur vorab als Info.

Cloudflare

Gestartet bin ich mit Cloudflare. Cloudflare bietet zum Testen und laut eigener Aussage für kleine und private Webseiten ausreichend, einen kostenlosen Account an, den ich dankbar annahm. Das Einrichten ist denkbar einfach, sodass ich hier gar nicht groß darauf eingehen möchte, weil es dafür schlicht Videos von Cloudflare gibt, die das besser können, als ich hier leisten kann. Der Unterschied zu anderen CDN Anbietern ist allerdings, dass Cloudflare nicht einzelne Verzeichnisse (z.B. assets und files im Falle von Contao) zwischenspeichert und zur Verfügung stellt, sondern die ganze Website, was bedeutet, man muss im Hosting die Nameserver auf Adressen von Cloudflare umstellen, was bei Kunden, die Ihre E-Mails über die gleiche Domain oder gar Outlook 365 leiten, Kenntnisse im Umgang mit DNS Einträgen, besser gesagt den MX-Records erfordern könnten. Solange die Postfächer beim Hoster bleiben (ohne zusätzlichen Mailserver), werden die MX-Einträge vom Hosting direkt von Cloudflare übernommen und man muß sich keine weiteren Gedanken machen - zumindest war es bei mir so. Also keine Angst und einfach mal testen.

Cloudfront (Amazon AWS)

hier gestaltete sich das ganze etwas schwieriger und ich benötigte 2 Anläufe, was schlicht daran lag, das sowohl sämtliche Videos von AWS selbst die Einrichtung einzig an dem Fall einer bei AWS selbst gehosteten Website erklären. Und davon kann man leider nicht so einfach ableiten. Daher habe ich den 1. Versuch irgendwann frustriert abgebrochen und am Wochenende vor der Glotze noch einmal den Laptop herangeholt und in Ruhe nach weiteren Anleitungen gesucht. Schlußendlich bin ich dann auf eine Anleitung gestossen, die man fast 1:1 übernehmen kann, abgesehen von den Eintragungen in Contao, die aber extrem einfach sind. Was ich hier zeige basiert zu 90% auf dieser Vorgabe, die Lorbeeren gehören also nicht mir.

1. Als erstes richtet man sich ein Konto auf https://aws.amazon.com/de/ ein. Zu den Kosten sei gesagt, dass man die Cloudfront 12 Monate kostenfrei nutzen kann, danach kostet jedes Gigabyte 0,085$ / Monat. Alle Angaben ohne Gewähr !

Cloudfront Contao

2. Nach der Anmeldung befindet man sich irgend wann in der erschlagenden Oberfläche von AWS mit unendlich vielen Applikationen. Man sucht nach "Cloudfront" und kann dann erst loslegen. Zuerst richtet man eine neue Distribution ein:

AWS Cloudfront einrichten

und trägt für diese die entsprechende Daten ein. Origin ist natürlich die Domain der Website. Sollte die Origin-ID nicht automatisch eingetragen werden, vergibt man hier einen sinnvollen dem Origin zuzuordnenden Namen, etwa: Custom-example.com.

die weiteren Einträge können wie im Bild übernommen werden. Danach speichern und jetzt heisst es kur warten, bis Cloudfront die Seite gescannt hat. Nachdem dieser Prozess beendet wurde, folgen die Einträge in Contao. Dafür kopiert man sich den Eintrag "Domain-Name": xxxxx.cloudfront.net.

EIntragungen CDN in Contao

und trägt Ihn in Contao in der Seitenstruktur in den Startpunkt einer Webseite ein. Genau dort, wo man auch die Sitemap anlegt - Ihr wisst schon ;)

Zum Abschluss öffnet man die .htacces und ergänzt bzw. ersetzt folgende Zeilen:

<IfModule mod_filter.c>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
</IfModule>

<IfModule mod_headers.c>
     <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
          Header set Access-Control-Allow-Origin "*"
     </FilesMatch>
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>


Danach kann wieder getestet werden.

P.S. die Performance meiner Seite hat sich jetzt nicht enorm verbessert, was aber auch daran lag, dass ich schon lange an ihr gebastelt hatte und diese auch ohne CDN schnell lief.

Kommentare

Bitte addieren Sie 3 und 5.
Über neue Kommentare per E-Mail benachrichtigen (Sie können das Abonnement jederzeit beenden)