So installieren Sie den Varnish-Cache-Server mit Nginx auf Ubuntu 18.04 Bionic Beaver Linux
Objektiv
Ziel ist es, einen Varnish Cache Server mit Nginx auf Ubuntu 18.04 Bionic Beaver Linux zu installieren und zu konfigurieren. Varnish ist ein schneller Caching-Server, der vor jedem Webserver sitzt und zuvor zwischengespeicherte Seiten bereitstellt, wodurch die Reaktionszeit der Website verbessert wird.
Betriebssystem- und Softwareversionen
- Betriebssystem: – Ubuntu 18.04 Bionic Beaver Linux
- Software: – Varnish 5.2 oder höher
Anforderungen
Privilegierter Zugriff auf Ihr Ubuntu-System als root oder über den Befehl sudo ist erforderlich.
Schwierigkeit
MITTEL
Konventionen
- # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl
sudo - $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden
Anweisungen
Installieren Sie Varnish und Nginx
Beginnen wir mit der Installation von Varnish- und Nginx-Diensten. Wenn Sie bereits einen Nginx-Webserver auf diesem oder einem anderen System laufen haben, installieren Sie einfach nur Varnish, indem Sie das Nginx-Schlüsselwort aus dem folgenden Befehl entfernen:
sudo apt -y install varnish nginx
Verwenden Sie den Befehl ss, um den Installationsstatus zu bestätigen:
ss -tlnf inet
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:6081 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
Nach erfolgreicher Installation sollte Ihr Nginx-Server Zeile 4auf Port 80 lauschen. Varnish auf Zeilen 6,7verwendet sowohl 6081 als auch 6082 Ports.
Konfigurieren des Nginx-Servers
Die Rolle des Nginx-Servers besteht darin, hinter dem Varnish-Cache-Server zu sitzen, daher müssen wir seinen Standardport 80 auf einen anderen Listening-Port umkonfigurieren, z. B. 8080. Öffnen Sie dazu Ihren bevorzugten Texteditor, z.B. nano und bearbeiten Sie die Standard-Site:
sudo nano /etc/nginx/sites-available/default
Sobald Sie sich im Bearbeitungsmodus befinden, ändern Sie Zeilen 2 und 3 vom Standardport 80 auf den alternativen Port 8080, wie unten gezeigt:
server {
listen 8080 default_server;
listen [::]:8080 default_server;
Wenn Sie fertig sind, speichern Sie Ihre neuen Einstellungen und laden Sie den Nginx-Server neu:
sudo service nginx reload
Nginx sollte jetzt auf dem neuen Standardport 8080 lauschen, wie in Zeile 4 von der Ausgabe des Befehls ss gezeigt:
ss -tlnf inet
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:6081 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
Optional können Sie die Standardindexseite ändern:
$ sudo sed -i 's/nginx/Varnish cache server on Nginx/g' /var/www/html/index.nginx-debian.html
Einrichten des Varnish Cache Servers
Da wir den Datenverkehr von Nginx über den Varnish-Cache-Server leiten möchten, besteht das Ziel nun darin, den Varnish-Cache-Server so neu zu konfigurieren, dass er auf Port 80 lauscht und somit als Front für alle öffentlichen HTTP-Anfragen fungiert. Um dies zu tun, bearbeiten Sie die systemd-Konfigurationsdatei /lib/systemd/system/varnish.service:
sudo nano /lib/systemd/system/varnish.service
Bearbeiten Sie Zeile 9 und ändern Sie den Standardport 6081 auf Port 80, wie unten gezeigt:
[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd
[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
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
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
[Install]
WantedBy=multi-user.target
Als nächstes müssen wir Varnish anweisen, sich auf den Nginx-Port 8080 zu verlassen. Bearbeiten Sie /etc/varnish/default.vcl
sudo nano /etc/varnish/default.vcl
Sobald Sie die Datei geöffnet haben, stellen Sie dem Varnish-Server Ihre Nginx-Socket-Informationen zur Verfügung.
Falls sich Ihr Nginx-Server auf demselben Host wie der Varnish-Server befindet, lassen Sie die Zeile 3unverändert, andernfalls geben Sie Ihre Nginx-IP-Adresse ein. Die Portnummer unseres Nginx-Servers ist 8080, wenn Sie eine andere Konfiguration haben, bearbeiten Sie Zeile 4entsprechend:
Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}Fast fertig! Alles, was übrig bleibt, ist, den systemd-Daemon neu zu laden und den Varnish-Cache-Server neu zu starten:
sudo systemctl daemon-reload
sudo service varnish restart
Alles erledigt, verwenden Sie erneut den Befehl ss, um die Ports Varnish Line 4und NginxZeile 5 zu bestätigen:
ss -tlnf inet
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
Falls Sie die UFW-Firewall verwenden, befolgen Sie unsere Anleitung zum Aktivieren des eingehenden Datenverkehrs über HTTP- und HTTPS-Ports auf Ihrem Ubuntu-Server.
Testen des Varnish Cache Servers
Der einfachste Weg, die Konfiguration Ihres Varnish Cache-Servers zu testen, ist der Befehl curl. Angesichts der Tatsache, dass die IP-Adresse Ihres Varnish Cache-Servers über den Hostnamen varnish-server-ubuntu aufgelöst werden kann, geben Sie Folgendes ein:
curl -I varnish-server-ubuntu
Die folgende Ausgabe in Zeile 2zeigt, dass wir den Nginx-Server über den Varnish Cache verwenden Zeile 10:
HTTP/1.1 200 OK
Server: nginx/1.13.6 (Ubuntu)
Date: Thu, 22 Feb 2018 03:50:52 GMT
Content-Type: text/html
Last-Modified: Thu, 22 Feb 2018 03:08:27 GMT
ETag: W/"5a8e342b-324"
Vary: Accept-Encoding
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/5.2)
Accept-Ranges: bytes
Connection: keep-alive
Überprüfen Sie als Nächstes Ihre Konfiguration über einen Webbrowser, indem Sie die folgende URL http://varnish-server-ubuntu/ verwenden:
Darüber hinaus können Sie einige Varnish-Caching-Statistiken mit dem Befehl varnishstat überprüfen:
sudo varnishstat