So beschleunigen Sie Apache mit Varnish HTTP Cache unter Ubuntu 18.04 LTS
Varnish ist ein Proxyserver, der sich auf HTTP-Caching konzentriert. Es ist als HTTP-Beschleuniger konzipiert und kann als Reverse-Proxy für Ihren Webserver (Apache oder Nginx) fungieren. Lack wurde für hochkarätige und stark frequentierte Websites verwendet, darunter Wikipedia, The Guardian und die New York Times.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Varnish HTTP Accelerator 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 dieses Handbuch verwenden wir den Ubuntu 18.04 LTS-Server.
Was wir tun werden
- Apache-Webserver installieren
- Apache-Standardport ändern
- Varnish installieren
- Varnish konfigurieren
- Testen Sie das Setup
Voraussetzungen
- Ubuntu 18.04 LTS
- Root-Rechte
Schritt 1 – Installieren Sie den Apache-Webserver
Installieren Sie zunächst den Apache-Webserver. Standardmäßig ist es im Ubuntu-Repository verfügbar.
Aktualisieren Sie das Ubuntu-Repository und installieren Sie Apache mit dem Befehl apt.
apt update
apt install -y apache2
Starten Sie nach Abschluss der Installation den Apache-Dienst und aktivieren Sie ihn mit den folgenden systemctl-Befehlen automatisch beim Systemstart.
systemctl start apache2
systemctl enable apache2
Der Apache Webserver wurde installiert.
Um allen den Zugriff auf den Webserver zu ermöglichen, müssen wir HTTP und HTTPS in unserer Firewall-Regel zulassen. Standardmäßig wird Ubuntu mit einem Firewall-Paket namens UFW geliefert.
Öffnen Sie neue SSH-, HTTP- und HTTPS-Ports mit den folgenden UFW-Befehlen.
ufw allow ssh
ufw allow http
ufw allow https
Starten Sie nun den Firewall-Dienst und aktivieren Sie ihn automatisch beim Systemstart.
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 Ergebnis wie unten gezeigt erhalten.
Schritt 2 – Ändern Sie den Apache-Standardport
In diesem Lernprogramm 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 ‚Varnish‘ verwendet.
Um den Standard-Apache-Port zu ändern, müssen wir die Ports der Apache-Konfiguration bearbeiten.conf‘ und die gesamte Konfiguration des virtuellen Hosts im Verzeichnis ’sites-available‘.
Wechseln Sie in das Apache-Konfigurationsverzeichnis.
cd /etc/apache2
Ersetzen Sie Port ’80‘ durch ‚8080‘ in der Apache-Konfiguration ‚ports.conf‘ und alle virtuellen Hostdateien im Verzeichnis ’sites-available‘. Wir können dies 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, stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den Apache-Dienst neu.
apachectl configtest
systemctl restart apache2
Jetzt läuft Apache unter HTTP-Port ‚8080‘, überprüfen Sie es mit dem Befehl ’netstat‘ wie unten gezeigt.
netstat -plntu
Stellen Sie sicher, dass Sie das Ergebnis wie folgt haben.
Sie können also sehen, dass der Apache-Webserver auf Port ‚8080‘ ausgeführt wird.
Schritt 3 – Installieren Sie Varnish HTTP Accelerator
In diesem Schritt installieren wir Varnish aus dem Ubuntu-Repository. Und für diesen Leitfaden werden wir Varnish 5.2 verwenden.
Installieren Sie varnish mit dem folgenden apt-Befehl.
apt install -y varnish
Starten Sie Varnish nach Abschluss der Installation 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 wird es unter den Ports ‚6081‘ für öffentliche Adresse und ‚6082‘ für Localhost-Adresse ausgeführt. Überprüfen Sie es mit dem Befehl netstat unten.
netstat -plntu
Und Sie erhalten den Standard-USB-Port.
Schritt 4 – Konfigurieren Sie Varnish als Reverse Proxy für Apache
In diesem Schritt konfigurieren wir Varnish auf der Vorderseite des Apache-Webservers. Varnish wird unter http-Port 80 ausgeführt, und jede Anfrage von Clients wird von ihm bearbeitet, bevor sie an den Apache-Webserver gesendet wird, der auf Port 8080 ausgeführt wird.
– Backend-Konfiguration
Gehen Sie in das Konfigurationsverzeichnis ‚varnish‘ und sichern Sie die Standarddatei ‚default.vcl‘.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Bearbeiten Sie die Standardeinstellung der Lackkonfiguration.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 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-Varnish-Ports ändern. Die Standardports für Varnish sind ‚6081‘ und ‚6082‘, und wir müssen den Port auf den HTTP-Port 80 ändern (nur für öffentliche Adressen).
Bearbeiten Sie die Lackparameterkonfiguration im Verzeichnis ‚/etc/default‘.
cd /etc/default/
vim varnish
Bearbeiten Sie die Zeile ‚DAEMON_OPTS‘ und ändern Sie den Standardport ‚6081‘ für Public address 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 Varnish-Servicedatei ‚varnish .service‘. Wechseln 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 Befehl varnish start wie folgt.
ExecStart=/usr/sbin/varnishd -j unix,Benutzer =vcache -F -a :80 -T localhost:6082 -f /etc/Lack/Standard.vcl -S /etc/varnish/secret -s malloc,256m
Speichern und beenden.
Laden Sie die Systemd-Dienstkonfiguration neu und starten Sie varnish neu.
systemctl daemon-reload
systemctl restart varnish
Überprüfen Sie nun varnish und stellen Sie sicher, dass es auf dem HTTP-Port 80 ausgeführt wird.
netstat -plntu
Varnish läuft 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 Befehl curl.
curl -I hakase-labs.co
Stellen Sie sicher, dass Sie den HTTP-Header wie unten gezeigt erhalten.
Beim Überprüfen im Webbrowser lautet die URL meines Testservers http://hakase-labs.co/. Wählen Sie hier Ihre Server-URL.
Und wir bekommen immer noch Apache-Inhalte.
Überprüfen Sie das Lackprotokoll mit dem Befehl ‚varnishncsa‘.
varnishncsa
Und wir erhalten das Protokoll nur aus dem Apache-Zugriffsprotokoll.
Die Installation und Konfiguration von Varnish für den Apache-Webserver wurde abgeschlossen.