Schlagwortarchiv für: Apache

Magento Hosting mit Plesk 11.5, Apache, Nginx und Varnish Cache

Varnish ist ein sehr beliebter Seitencache für Webseiten.

Der Geschwindigkeitsvorteil kann je nach verwendeten Backend ein vielfaches betragen da Webseiten nicht bei jedem Abruf berechnet sondern statisch ausgeliefert werden.

Gerade im Bereich von Magento Hosting und Shop Hosting wird er sehr häufig eingesetzt.

Ich möchte hier einmal zeigen, wie man den Cache in einer Plesk Umgebung installiert.

Er wird als Daemon installiert und zwischen Webserver und Benutzer gehängt. Seiten werden entweder aus dem Cache geladen oder vom Webserver (Backend Server) abgerufen.

Um den Varnish im Plesk einzubinden sind einige Schritte erforderlich.

1. Installation des Varnish Caches
2. Erstellen einer custom Konfiguration im Plesk (CentOS: /usr/local/psa/admin/conf/templates/custom)

Installation des Varnish Caches für das Magento Hosting

Der Varnish Cache ist auf einem RH/CentOS sehr einfach installiert:

Dadurch wird der Varnish in der Version 3 installiert.

Vorsicht: Sofern andere Respoitory Varnish zur Verfügung stellen sollte mit yum priorities eine Reihenfolge festgelegt werden.

/etc/varnish/default.vcl:

/etc/sysconfig/varnish:

Erstellen einer custom Konfiguration für Plesk

Damit der Webserver von Plesk die Daten vom Varnish abruft und nicht direkt vom Webserver ist eine Konfigurationserweiterung notwendig.

Plesk ist standardmäßig so konfiguriert, dass eingehende Verbindungen vom NGinx Reverseproxy entgegen genommen werden.

Nginx liefert lokale Dateien ggf. direkt aus und übergibt weiter Anfragen an den Apache Server, welcher i.d.R. auf Port 7080 horcht. Hier klinken wir uns ein und schieben dem System den Varnish Cache unter.

Im Ordner custom können eigene Konfigurationen abgelegt werden, die Plesk statt der eigenen verwendet.

Kopieren Sie die default/nginx.php aus dem default in den custom Ordner.

Bearbeiten Sie die Datei custom/nginx.php und fügen oben (Zeile 3) zwischen den beiden PHP Zeilen den upstream backend_varnish ein:

[lokale ip adresse] ersetzen Sie bitte durch die Adresse, über die Ihre Webseite erreichbar ist.

Der Upstream Server dient nun als Deklaration, woher der NGinx seine Daten bekommen soll, sobald er als proxy_pass den Namen des Upstreams übergeben bekommen hat.

Sollte der Varnish Cache mal nicht Online sein, verwendet NGinx den Apache Server da dieser als Backup Verbindung hinterlegt ist.

Kopieren Sie die default/domain/service/proxy.php Datei in den custom/domain/service Ordner.

Bearbeiten Sie diese nun wie folgt (custom/domain/service/proxy.php):

An der file_exists Funktion läßt sich gut sehen, dass das Script erst prüft, ob eine Datei im /etc/varnish ordner liegt, die als Namen den Domainnamen gefolgt von .enable hat (z.B. lcube-webhosting.de.enable). Ist dies der Fall wird der Varnish aktiviert. Wenn nicht, werden die Dateien normal vom Webserver abgerufen. Auf diese Weise kann der Varnish durch setzen einer Datei aktiviert oder deaktiviert werden.

Nach dem setzen oder löschen der enable Datei muss

ausgeführt werden.

Ggf. muss ein Addon installiert werden. Für Magento kommt z.B. Turpentine in Frage.

Nicht für jede Anwendung ist der Varnish Cache geeignet. Wenn viele Dynamische Daten abgerufen werden und die Aktualität der Daten von entscheidender Bedeutung ist (z.B. bei Warenkörbe sowie beim SVN Hosting oder Git Hosting) sollte man entsprechende URLs in die Ausnahmen eintragen bzw. auf Varnish verzichten.

Fehlermeldung: Server sent unexpected return value (413 Request Entity Too Large) in response

Der Apache Server gibt den Fehler 413 zurück wenn die Größe der Anfrage (RequestBody) den angegebenen Wert in der Konfiguration überschreitet.

Daher sollte bei einem SVN Hosting Server in der Apache Konfiguration folgendes gesetzt sein:

Somit sollten keine HTTP 413 Fehler mehr auftreten.