Varnish Cache für Apache2 + Plesk 12.5 + Ubuntu 14.04 LTS

Performance is King! Aber auch bei einem Webserver und Websites zählt der Speed. Um die Inhalte deines Blogs mit der nötigen Schnelligkeit ausliefern zu können, benötigst Du einen Varnish Cache. Doch wo fängt man an und wie wird der Varnish-Server aufgesetzt. Das schauen wir uns jetzt mal an.

Anzeige

Grundvoraussetzungen für den Varnish-Cache

Damit Du einen eigenen Varnish Server aufsetzen kannst, benötigst du ein V-Server mit SSH Zugang und Installationsrechten.

In diesem Beitrag nutze ich einen Apache2 V-Server mit PHP7 und Ubuntu 14.04 LTS und Plesk 12.5.

Eins vorne Weg – diese Anleitung ist für Website ohne SSL – Unterstützung gedacht. Wer also seine Website mit HTTPS betreibt, muss sich weiterführend mit einem Proxy Server beschäftigen. Was ich schade finde, denn Varnish kann sich richtig zickig mit SSL (HTTPS) anstellen. Ich habe es bis Dato noch nicht zu laufen gebracht, aber wenn, lasse ich es euch sofort wissen wie es geht. Denn das Thema Varnish + Apache2 + SSL ist echt mühselig.

Viele setzen einfach auf den leichten Weg und nutzen Apache2 & Nginx als Proxy Server für den Non-SSL Content. Aber damit hat man ja wieder einen Technologiebruch – was ja eigentlich nicht notwendig ist. Aber dazu später mal mehr, sobald ich mich durchgewühlt habe ;D …

Ok –  zurück zum Thema!
Nun wollen wir uns den Apache2 Server mit einem feinen Varnish aufstocken.

1. Apache Ports richtig konfigurieren

Datei bearbeiten: 
/etc/apache2/ports.conf

Listen 8080

1.2. Plesk Datenbank per Shell anpassen

$ mysql -uadmin -p`cat /etc/psa/.psa.shadow` -D psa -e'replace into misc (param, val) values ("http_port", 8080)'
$ /usr/local/psa/admin/sbin/httpdmng --reconfigure-all

Nun läuft Apache nicht mehr auf dem Port 80 sondern auf Port 8080. Das ermöglicht uns, dass wir

2. Varnish installieren und konfigurieren

apt-get update
apt-get install varnish


2.1 Datei bearbeiten:

/etc/default/varnish

Alterative 2 anpassen und ggf. auf eingene Bedürfnisse anpassen.
Dies ist nur die Basic-Installation.

## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.
#
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -u varnish -g varnish \
             -S /etc/varnish/secret \
             -s malloc,256m"

 

2.2 Datei bearbeiten: 
/etc/varnish/default.vcl

Wichtig: Bitte nicht vergessen, dass bei .host die Server-IP eintragen, da Plesk 127.0.0.1 oder 0.0.0.0 nicht aktzeptiert.

# Redirect requests to Apache, running on port 8080
backend apache {
        .host = "DIE_SERVER_IP";
        .port = "8080";
}

 

2.3 Apache und Varnish restart

sudo service apache2 stop
sudo service varnish stop
sudo service apache2 start
sudo service varnish start

 

3. Varnish Cache Testen

Um zu testen, ob Varnish und Apache wieder korrekt laufen und eure Websiteinhalte gecacht von Varnish ausgeliefert werden, gibt es die Möglichkeit, den Header euerer Domain per Konsolenbefehl ausgeben zu lassen.

Header-Ausgabe in der Console testen

curl -I domain.tld

Wenn Varnish korrekt läuft, solltet ihr ein ähnliches Ergebnis sehen:

HTTP/2
Server: Apache
Location: http://www.dermatz.de/
Content-Type: text/html; charset=iso-8859-1
Content-Length: 292
Accept-Ranges: bytes
Date: Mon, 04 Apr 2016 18:26:18 GMT
X-Varnish: 701369740
Age: 0
Via: 1.1 varnish
Connection: keep-alive

Wichtig hierbei sind, dass diese Einträge vorhanden sind:

X-Varnish: 701369740
Via: 1.1 varnish

 

Linktipp

Ein cooles Video zum Thema habe ich auch hier gefunden und möchte es euch natürlich nicht vorenthalten.

https://www.youtube.com/watch?v=U_iaB5Pz5HA

1 Kommentar. Hinterlasse eine Antwort

  • Danke für diesen wundervollen Artikel. Ich hatte Varnish noch nie im Einsatz, da aber auch Geschwindigkeit im Netz eine immer wichtigere Rolle spielt, werde ich mich mit Varnish mal ein wenig beschäftigen.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte füllen Sie dieses Feld aus
Bitte füllen Sie dieses Feld aus
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren

Menü