Website-Suche

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

Verwandte Artikel: