Varnish ist ein Proxy-Server, der sich auf das HTTP-Caching konzentriert. Es ist als HTTP-Beschleuniger konzipiert und kann als Reverse-Proxy für Ihren Webserver (Apache oder Nginx) fungieren. Varnish wurde für hochkarätige und stark frequentierte Websites verwendet, darunter Wikipedia, The Guardian und The New York Times.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Varnish-HTTP-Beschleuniger als Reverse-Proxy für den Apache-Webserver installieren und konfigurieren. Der echte Webserver Apache läuft unter einem nicht standardmäßigen HTTP-Port (läuft auf Port 8080). Und Varnish wird als Reverse-Proxy auf HTTP-Port 80 ausgeführt. Für diese Anleitung verwenden wir den Ubuntu 18.04 LTS-Server.
Was wir tun werden
- Installieren Sie den Apache-Webserver
- Apache-Standardport ändern
- Installieren Sie Varnish
- Lack konfigurieren
- Testen Sie die Einrichtung
Voraussetzungen
- Ubuntu 18.04 LTS
- Root-Rechte
Schritt 1 - Apache-Webserver installieren
Installieren Sie zunächst den Apache-Webserver. Standardmäßig ist es im Ubuntu-Repository verfügbar.
Aktualisieren Sie das Ubuntu-Repository und installieren Sie dann Apache mit dem apt-Befehl.
apt update
apt install -y apache2
Nachdem die Installation abgeschlossen ist, starten Sie den Apache-Dienst und aktivieren Sie ihn mit den folgenden systemctl-Befehlen so, dass er beim Systemstart automatisch ausgeführt wird.
systemctl start apache2
systemctl enable apache2
Der Apache-Webserver wurde installiert.
Um allen den Zugriff auf den Webserver zu ermöglichen, müssen wir als Nächstes HTTP und HTTPS in unserer Firewall-Regel zulassen. Standardmäßig enthält Ubuntu ein Firewall-Paket namens UFW.
Öffnen Sie mit den folgenden UFW-Befehlen neue SSH-, HTTP- und HTTPS-Ports.
ufw allow ssh
ufw allow http
ufw allow https
Starten Sie nun den Firewall-Dienst und aktivieren Sie ihn so, dass er beim Systemstart automatisch gestartet wird.
ufw enable
Geben Sie 'y' ein und drücken Sie zur Bestätigung die Eingabetaste.
Neue Ports für HTTP, HTTPS und SSH wurden geöffnet und sind von außerhalb des Netzwerks zugänglich.
Wenn Sie den Apache-Webserver testen möchten, können Sie den Befehl netstat verwenden und sicherstellen, dass Apache unter Port 80 ausgeführt wird.
netstat -plntu
Oder Sie können den folgenden Curl-Befehl verwenden.
curl -I hakase-labs.co
Sie sollten das unten gezeigte Ergebnis erhalten.
Schritt 2 – Apache-Standardport ändern
In diesem Tutorial verwenden wir Apache als Backend-Server, und er wird nicht unter dem Standard-HTTP-Port 80 ausgeführt. Der Apache-Webserver wird auf Port 8080 als Backend ausgeführt, und der Standard-HTTP-Port 80 wird von verwendet ' Lack'.
Um den standardmäßigen Apache-Port zu ändern, müssen wir die Apache-Konfiguration „ports.conf“ und die gesamte Konfiguration des virtuellen Hosts im Verzeichnis „sites-available“ bearbeiten.
Wechseln Sie in das Apache-Konfigurationsverzeichnis.
cd /etc/apache2
Ersetzen Sie Port „80“ durch „8080“ in der Apache-Konfiguration „ports.conf“ und allen virtuellen Hostdateien im Verzeichnis „sites-available“. Wir können das tun, indem wir die folgenden sed-Befehle ausführen.
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
Testen Sie als Nächstes die Apache-Konfiguration und vergewissern Sie sich, dass kein Fehler vorliegt, und starten Sie dann den Apache-Dienst neu.
apachectl configtest
systemctl restart apache2
Jetzt läuft Apache unter dem HTTP-Port '8080', überprüfen Sie ihn mit dem 'netstat'-Befehl wie unten gezeigt.
netstat -plntu
Stellen Sie sicher, dass Sie das Ergebnis wie unten sehen.
Sie können also sehen, dass der Apache-Webserver auf Port „8080“ läuft.
Schritt 3 – Varnish HTTP Accelerator installieren
In diesem Schritt installieren wir Varnish aus dem Ubuntu-Repository. Und für diese Anleitung verwenden wir Varnish 5.2.
Installieren Sie Lack mit dem folgenden apt-Befehl.
apt install -y varnish
Nachdem die Installation abgeschlossen ist, starten Sie Varnish und aktivieren Sie den automatischen Start beim Systemstart.
systemctl start varnish
systemctl enable varnish
Varnish wurde auf dem Ubuntu 18.04-System installiert.
Standardmäßig läuft es unter den Ports „6081“ für die öffentliche Adresse und „6082“ für die lokale Hostadresse. Überprüfen Sie es mit dem untenstehenden netstat-Befehl.
netstat -plntu
Und Sie erhalten den Standard-Lack-Port.
Schritt 4 – Varnish als Reverse-Proxy für Apache konfigurieren
In diesem Schritt konfigurieren wir Lack auf der Vorderseite des Apache-Webservers. Varnish wird unter http-Port 80 ausgeführt, und jede Anfrage von Clients wird von ihm verarbeitet, bevor sie an den Apache-Webserver gesendet wird, der auf Port 8080 läuft.
- Backend-Konfiguration
Gehen Sie in das 'varnish'-Konfigurationsverzeichnis und sichern Sie die Standarddatei 'default.vcl'.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Bearbeiten Sie die Lackkonfiguration „default.vcl“ mit dem vim-Editor.
vim default.vcl
Definieren Sie die 'Backend'-Konfiguration in Zeile 16. Das Backend für unser Setup ist Apache und es läuft auf Port 8080. Die Lackkonfiguration für unser Apache-Setup sollte also wie folgt aussehen:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Speichern und beenden.
- Ausführen von Varnish auf Port 80
Als nächstes müssen wir die Standard-Lack-Ports ändern. Die Standardports für Lack sind „6081“ und „6082“, und wir müssen den Port auf den HTTP-Port 80 ändern (nur für öffentliche Adresse).
Bearbeiten Sie die Lackparameterkonfiguration im Verzeichnis „/etc/default“.
cd /etc/default/
vim varnish
Bearbeiten Sie die Zeile „DAEMON_OPTS“, ändern Sie den Standardport „6081“ für die öffentliche Adresse mit dem Standard-HTTP-Port „80“, wie unten gezeigt.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Speichern und beenden.
Als nächstes müssen wir die Lackdienstdatei ‚varnish.service‘ bearbeiten. Gehen Sie in das Verzeichnis ‚/lib/systemd/system‘ und bearbeiten Sie die Servicedatei mit vim.
cd /lib/systemd/system/
vim varnish.service
Ändern Sie in der Zeile „ExecStart“ den Lackstartbefehl wie folgt.
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Speichern und beenden.
Laden Sie die systemd-Dienstkonfiguration neu und starten Sie dann den Lack neu.
systemctl daemon-reload
systemctl restart varnish
Überprüfen Sie nun den Lack und stellen Sie sicher, dass er auf dem HTTP-Port 80 ausgeführt wird.
netstat -plntu
Daher läuft Varnish jetzt unter HTTP-Port 80 als Front-End für den Apache-Webserver, der sich auf Port 8080 befindet.
Schritt 5 – Testen
Testen Sie mit dem Curl-Befehl.
curl -I hakase-labs.co
Stellen Sie sicher, dass Sie den HTTP-Header wie unten gezeigt erhalten.
Wenn ich über den Webbrowser nachprüfe, lautet die URL meines Testservers http://hakase-labs.co/. Wählen Sie hier Ihre Server-URL aus.
Und wir bekommen immer noch Apache-Inhalte.
Überprüfen Sie das Lackprotokoll mit dem Befehl „varnishncsa“.
varnishncsa
Und wir erhalten Protokolle nur aus dem Apache-Zugriffsprotokoll.
Die Installation und Konfiguration von Varnish für den Apache-Webserver ist abgeschlossen.