Die Administration von Webservices ist heutzutage eine elementare Aufgabe bei der Verwaltung eines Servers. Deshalb gibt es immer Tools, die uns bei der Aufgabe helfen. Eine davon ist die Webserver-Beschleunigung, etwas, das in unserer Zeit grundlegend erscheint. Um Ihnen dabei zu helfen, gibt es diesen Beitrag, damit Sie Varnish unter Ubuntu 20.04 installieren und konfigurieren können.
Was ist Lack?
Laut der Varnish-Website:
Varnish Cache ist ein Webanwendungsbeschleuniger, der auch als Caching-HTTP-Reverse-Proxy bekannt ist. Sie installieren es vor jedem Server, der HTTP spricht, und konfigurieren es so, dass es den Inhalt zwischenspeichert. Varnish Cache ist wirklich sehr schnell. Je nach Architektur wird die Bereitstellung in der Regel um das 300- bis 1000-fache beschleunigt
Eines der Hauptmerkmale von Varnish Cache ist neben seiner Leistung die Flexibilität seiner Konfigurationssprache VCL. Mit VCL können Sie Richtlinien schreiben, wie eingehende Anfragen behandelt werden sollen. In einer solchen Richtlinie können Sie entscheiden, welche Inhalte Sie bereitstellen möchten , woher Sie den Inhalt erhalten möchten und wie die Anfrage oder Antwort geändert werden soll.
Ein weiterer interessanter Aspekt ist, dass Varnish Open Source ist, das unter der FreeBSD-Lizenz veröffentlicht wurde. Dieses Projekt wurde 2005 ins Leben gerufen und hat daher einen langen Weg zurückgelegt, der es ihm ermöglicht hat, Erfahrungen zu sammeln.
Varnish ist also ein sehr nützliches Tool für unsere Webserver, insbesondere wenn wir mit viel Verkehr konfrontiert sind.
Installieren und konfigurieren Sie Varnish unter Ubuntu 20.04
Varnish ist sehr flexibel und kann daher sowohl in Nginx als auch in Apache konfiguriert werden. Letzteres ist die aktuelle Wahl, da es sehr beliebt ist.
Erster Schritt:Apache installieren und konfigurieren
Der erste Schritt besteht darin, Apache auf Ubuntu 20.04 zu installieren und dann einige Konfigurationen vorzunehmen, um es mit Varnish einzurichten.
Aktualisieren Sie also zuerst in einer Befehlszeilenumgebung das Betriebssystem.
sudo apt update
sudo apt upgrade
Installieren Sie danach Apache aus dem offiziellen Ubuntu 20.04-Repository.
sudo apt install apache2
Wenn Ihr Server hinter einer Firewall läuft, stellen Sie sicher, dass Sie die Apache-Ports öffnen.
sudo ufw allow http
sudo ufw allow https
Jetzt müssen Sie den von Apache standardmäßig verwendeten Port ändern, der 80
ist Dazu müssen Sie die ports.conf
ändern Datei.
sudo nano /etc/apache2/ports.conf
Und suchen Sie nach der Listen-Zeile und stellen Sie einen anderen Port ein. In diesem Fall wähle ich 8080
Listen 8080
Speichern Sie die Änderungen und schließen Sie den Editor.
Jetzt müssen Sie dasselbe in der Standard-Virtualhost-Konfigurationsdatei tun:
sudo nano /etc/apache2/sites-available/000-default.conf
Und ersetzen Sie die VirtualHost-Zeile durch diese:
<VirtualHost *:8080>
Speichern Sie die Änderungen und schließen Sie die Datei.
Denken Sie daran, dass Sie jedes Mal, wenn Sie einen neuen VirtualHost hinzufügen, den Port in seiner Konfigurationsdatei ändern müssen.
Sie können die Syntax der Konfigurationen auf Fehler testen:
sudo apachectl configtest
Syntax OK
Um die Änderungen zu übernehmen, starten Sie Apache neu.
sudo systemctl restart apache2
Gehen wir nun zu Varnish
Zweiter Schritt:Installiere Varnish auf Ubuntu 20.04
Varnish ist in den offiziellen Ubuntu-Repositories verfügbar, sodass die Installation recht einfach ist.
Um Varnish zu installieren, führen Sie also den folgenden Befehl aus:
sudo apt install varnish
Sie können den Dienst starten und aktivieren, damit er beim Systemstart ausgeführt wird
sudo systemctl start varnish
sudo systemctl enable varnish
Danach müssen Sie einige Konfigurationen vornehmen, damit es mit Apache funktioniert.
Varnish verwendet also VCL für seine Konfigurationen, also müssen wir die Standardkonfigurationsdatei bearbeiten.
Erstellen Sie vorher ein Backup:
cd /etc/varnish/
sudo cp default.vcl default.vcl.bak
sudo nano default.vcl
Stellen Sie im Backend-Standardabschnitt sicher, dass er die folgende Konfiguration hat:
backend default { .host = "127.0.0.1"; .port = "8080"; }
Wie Sie sehen können, geben wir an, dass es auf Port 8080
lauschen wird auf localhost zu Apache.
Und es ist auch notwendig, Änderungen in einer anderen Konfigurationsdatei vorzunehmen:
cd /etc/default/
sudo nano varnish
Im unkommentierten Abschnitt von DAEMON_OPTS
ändere den Listening Port und belasse es wie folgt:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Speichern Sie die Änderungen und schließen Sie die Datei.
Jetzt ist es an der Zeit, eine letzte Änderung vorzunehmen, und in der Datei, die den Varnish-Dienst verwaltet, müssen Sie den Überwachungsport ändern.
sudo nano /lib/systemd/system/varnish.service
Suchen Sie dann die ExecStart-Zeile und ersetzen Sie sie durch diese hier
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 Sie die Änderungen und schließen Sie die Datei.
Um die Änderungen zu übernehmen, aktualisieren Sie die Systemd-Dienste
sudo systemctl daemon-reload
Und starten Sie Varnish neu:
sudo systemctl restart varnish
Um zu überprüfen, ob alles in Ordnung ist, müssen Sie die Website mit dem Curl-Befehl
anforderncurl -I [your-server]
Ersetzen Sie [your-server]
mit der IP-Adresse Ihres Servers oder der Domain. Sie sollten eine Ausgabe ähnlich der folgenden erhalten:
HTTP/1.1 200 OK
Date: Tue, 23 Mar 2021 20:16:57 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Tue, 23 Mar 2021 20:02:35 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.2)
ETag: W/"2aa6-5be39a9d0fa0e-gzip"
Accept-Ranges: bytes
Content-Length: 10918
Connection: keep-alive
Auf diese Weise wird Varnish installiert und konfiguriert.
Schlussfolgerung
Varnish zusammen mit Apache ist eine gute Kombination, die unserem Webserver helfen wird, alle Websites, die wir bereitstellen können, besser zu verarbeiten. Und wie wir zeigen konnten, ist die Konfiguration keine komplizierte Angelegenheit.