Varnish Cache ist ein kostenloser Open-Source-Reverse-Proxy-HTTP-Beschleuniger für Websites und APIs. Es kann als Reverse-Proxy vor jedem Webserver installiert werden, der auf HTTP läuft. Es befindet sich zwischen dem Webserver und dem Browser und speichert Webseiten, Cookies und andere Daten im Speicher. Dieser Cache wird verwendet, um alle zukünftigen Anfragen nach genau ähnlichen Inhalten zu bedienen. Dadurch wird die Auslastung der Webanwendung erhöht und die Leistung des Webservers um das 300-fache verbessert.
In diesem Tutorial richten wir den Nginx-Server als Backend-Server ein und konfigurieren ihn so, dass er auf Port 8080 lauscht, und konfigurieren dann den Varnish-Cache so, dass er auf dem Standard-HTTP-Port 80 lauscht.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein Root-Passwort wird auf dem Server konfiguriert.
Nginx-Webserver installieren und konfigurieren
Zuerst müssen Sie den Nginx-Webserver in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:
dnf install nginx -y
Starten Sie nach der Installation den Nginx-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start nginx
systemctl enable nginx
Standardmäßig lauscht Nginx auf Port 80. Sie müssen Nginx also so konfigurieren, dass es auf Port 80 lauscht. Sie können es konfigurieren, indem Sie die Nginx-Standardkonfigurationsdatei bearbeiten:
nano /etc/nginx/nginx.conf
Suchen Sie die folgenden Zeilen:
listen 80 default_server; listen [::]:80 default_server;
Und ersetzen Sie sie durch die folgenden Zeilen:
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Zu diesem Zeitpunkt ist der Nginx-Webserver installiert und überwacht Port 8080. Sie können dies mit dem folgenden Befehl überprüfen:
netstat -tpln | grep 8080
Sie sollten die folgende Ausgabe erhalten:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 30367/nginx:master tcp6 0 0 :::8080 :::* LISTEN 30367/nginx:master
Installieren Sie den Varnish-Cache
Standardmäßig ist das Varnish-Paket im Standard-Repository von CentOS 8 verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
DNF-Modul-Installationslack
Starten Sie nach der Installation den Varnish-Dienst mit dem folgenden Befehl:
systemctl start lack
Sie können die installierte Version des Varnish-Cache auch mit dem folgenden Befehl überprüfen:
varnishd -V
Sie sollten die folgende Ausgabe sehen:
varnishd (varnish-6.0.2 Revision 0458b54db26cfbea79af45ca5c4767c7c2925a91)Copyright (c) 2006 Verdens Gang ASCopyright (c) 2006-2018 Varnish Software AS
Varnish für Nginx konfigurieren
Als Nächstes müssen Sie Lack so konfigurieren, dass er auf Port 80 ausgeführt wird, um HTTP-Anforderungen von Clients zu empfangen. Sie können es konfigurieren, indem Sie die Varnish-Standardkonfigurationsdatei bearbeiten:
systemctl edit --full lack
Suchen Sie die folgende Zeile:
ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m
Und ersetzen Sie es durch die folgende Zeile:
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Als Nächstes müssen Sie den Backend-Server für Varnish definieren. Sie können dies tun, indem Sie die Varnish-Hauptkonfigurationsdatei /etc/varnish/default.vcl:
bearbeitennano /etc/varnish/default.vcl
Ändern Sie die folgenden Zeilen:
backend myserver { .host ="127.0.0.1"; .port ="8080";}
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starten Sie als Nächstes den Varnish-Dienst neu und aktivieren Sie ihn mit dem folgenden Befehl, damit er beim Systemneustart gestartet wird:
systemctl lack neu starten
systemcl lack aktivieren
Sie können den Status des Lacks auch mit dem folgenden Befehl überprüfen:
Systemctl-Statuslack
Sie sollten die folgende Ausgabe erhalten:
Sie können jetzt den Listening-Port von Nginx und Varnish mit dem folgenden Befehl überprüfen:
netstat -tpln | grep80
Sie sollten die folgende Ausgabe sehen:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 30424/varnishd tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 30367/nginx:master tcp6 0 0 :::80 :::* LISTEN 30424/varnishd tcp6 0 0 :::8080 :::* LISTEN 30367/nginx:master
Konfigurieren Sie SELinux und die Firewall
Standardmäßig ist SELinux in CentOS 8 aktiviert. Daher müssen Sie SELinux für Varnish konfigurieren. Sie können es mit dem folgenden Befehl konfigurieren:
setsebool -P httpd_can_network_connect 1
Als nächstes müssen Sie Port 80 durch Firewalld zulassen. Sie können dies mit dem folgenden Befehl tun:
firewall-cmd --permanent --zone public --add-port 80/tcp
firewall-cmd --reload
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Lack-Cache testen
An diesem Punkt wird der Varnish-Cache installiert und mit dem Nginx-Webserver konfiguriert. Jetzt ist es an der Zeit zu testen, ob der Varnish-Cache funktioniert oder nicht.
Sie können es mit dem Curl-Befehl wie unten gezeigt testen:
curl -I http://localhost
Sie sollten die folgende Ausgabe sehen:
HTTP/1.1 200 OKServer:nginx/1.14.1Datum:Sa, 29. Aug. 2020 13:53:44 GMTContent-Type:text/html; charset=UTF-8X-Powered-By:PHP/7.2.24X-Varnish:32800Age:0Via:1.1-Lack (Varnish/6.0)Accept-Ranges:bytesConnection:keep-alive
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Varnish Cache mit Nginx erfolgreich auf CentOS 8 installiert. Ich hoffe, Sie können Varnish Cache auch mit dem Apache-Webserver problemlos konfigurieren. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.