So beschleunigen Sie Nginx mit Varnish Cache unter CentOS 7

Varnish Cache (auch bekannt als Varnish) ist ein Open-Source-, Hochleistungs-HTTP-Beschleuniger, der entwickelt wurde, um Webserver zu beschleunigen. In unseren letzten Artikeln haben wir erklärt, wie man Varnish Cache für Apache unter CentOS 7 und CentOS 8 einrichtet.

In diesem Artikel zeigen wir Ihnen, wie Sie Varnish Cache als Front-End für den Nginx HTTP-Server in CentOS 7 installieren und verwenden können. Diese Anleitung sollte auch unter RHEL 7 funktionieren.

Anforderungen

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

Schritt 1: Installieren Sie den Nginx-Webserver unter CentOS 7

1. Beginnen Sie mit der Installation des Nginx HTTP-Servers aus den Standard-Software-Repositories von CentOS mit dem YUM-Paketmanager wie folgt.

# yum install nginx
Install Nginx on CentOS 7

2. Wenn die Installation abgeschlossen ist, starten Sie den Nginx-Dienst vorerst und aktivieren Sie ihn, um beim Systemstart automatisch zu starten.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Start and Enable Nginx at Boot

3. Ändern Sie nun die Firewall-Regeln des Systems, um eingehende Pakete auf Port 80 mit den folgenden Befehlen zu ermöglichen.

# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload
Open Nginx Port on Firewall

Schritt 2: Installieren Sie Varnish Cache unter CentOS 7

4. Es gibt jetzt vorkompilierte RPM-Pakete für die neueste Version von Varnish Cache 6 (d.h. 6.5 zum Zeitpunkt des Schreibens), daher müssen Sie das offizielle Varnish Cache-Repository hinzufügen.

Davor müssen Sie das EPEL-Repository aktivieren, um mehrere Abhängigkeitspakete zu installieren, wie unten gezeigt.

# yum install -y epel-release

5. Installieren Sie als nächstes pygpgme, ein Paket zur Behandlung von GPG-Signaturen, und yum-utils, eine Sammlung nützlicher Dienstprogramme, die die nativen Funktionen von yum auf verschiedene Weise erweitern.

# yum install pygpgme yum-utils

6. Erstellen Sie nun eine Datei mit dem Namen /etc/yum.repos.d/varnishcache_varnish5.repo, die die unten stehende Repository-Konfiguration enthält.

# vi /etc/yum.repos.d/varnishcache_varnish65.repo

Wichtig: Stellen Sie sicher, dass Sie el und 7 in der unten stehenden Konfiguration durch Ihre Linux-Distribution und Version ersetzen:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Führen Sie nun den folgenden Befehl aus, um Ihren lokalen yum-Cache zu aktualisieren und das Varnish-Cache-Paket zu installieren (vergessen Sie nicht, den GPG-Schlüssel zu akzeptieren, indem Sie beim Installieren des Pakets y oder yes eingeben):

# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish 
Install Varnish Cache in CentOS 7

8. Nach der Installation von Varnish Cache wird das Hauptausführbare als /usr/sbin/varnishd installiert und die Varnish-Konfigurationsdateien befinden sich in /etc/varnish/:

  • /etc/varnish/default.vcl – dies ist die Haupt-Varnish-Konfigurationsdatei, sie ist in der Varnish-Konfigurationssprache (VCL) geschrieben.

9. Starten Sie nun den Varnish-Dienst, aktivieren Sie ihn, um beim Systemstart automatisch zu starten, und überprüfen Sie seinen Status, um sicherzustellen, dass er läuft, wie folgt.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Start Varnish Cache

10. Sie können bestätigen, dass die Varnish-Installation erfolgreich war, indem Sie den Speicherort der Varnish-Ausführungsdatei und die installierte Version auf Ihrem System sehen.

$ which varnishd
$ varnishd -V
Beispiel-Ausgabe
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Schritt 3: Konfigurieren Sie Nginx, um mit dem Varnish-Cache zu arbeiten

11. In diesem Schritt müssen Sie Nginx konfigurieren, um mit dem Varnish-Cache zu arbeiten. Standardmäßig hört Nginx auf Port 80, Sie sollten den Standard-Nginx-Port auf 8080 ändern, damit er hinter dem Varnish-Caching läuft.

Öffnen Sie die Nginx-Konfigurationsdatei /etc/nginx/nginx.conf und finden Sie die Zeile listen 80 und ändern Sie sie in listen 8080 wie im Serverblock unten gezeigt.

# vi /etc/nginx/nginx.conf
Configure Nginx Listening Port

Hinweis: Dies sollte in allen Serverblock-Konfigurationsdateien erfolgen (normalerweise erstellt unter /etc/nginx/conf.d/) für Websites, die Sie über Varnish bereitstellen möchten.

12. Öffnen Sie als nächstes die Konfigurationsdatei des Varnish-Dienstes und finden Sie den Parameter ExecStart, der den Port angibt, auf dem Varnish hört, und ändern Sie seinen Wert von 6081 in 80.

# systemctl edit --full  varnish

Die Zeile sollte wie folgt aussehen.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Change Varnish Cache Port

13. Richten Sie als nächstes Nginx als Backend-Server für den Varnish-Proxy in der Konfigurationsdatei /etc/varnish/default.vcl ein.

# vi /etc/varnish/default.vcl 

Finden Sie den Backend-Abschnitt und definieren Sie die Host-IP und den Port. Nachfolgend finden Sie die Standard-Backend-Konfiguration. Ändern Sie diese, um auf Ihren tatsächlichen Content-Server zu verweisen.

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

14. Nachdem Sie alle erforderlichen Konfigurationen durchgeführt haben, starten Sie Nginx HTTPD und Varnish-Cache neu, um die obigen Änderungen zu übernehmen.

# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish

Schritt 4: Testen Sie den Varnish-Cache auf Nginx

15. Überprüfen Sie abschließend, ob der Varnish-Cache aktiviert und mit dem Nginx-Dienst funktioniert, indem Sie den unten stehenden cURL-Befehl verwenden, um den HTTP-Header anzuzeigen.

# curl -I http://localhost
Beispiel-Ausgabe
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Sie können zusätzliche Informationen im Varnish-Cache-Github-Repository finden: https://github.com/varnishcache/varnish-cache

In diesem Tutorial haben wir erklärt, wie Sie den Varnish-Cache für den Nginx-HTTP-Server unter CentOS 7 einrichten. Verwenden Sie das Kommentarformular unten, um uns etwaige Fragen oder zusätzliche Ideen zu senden.

Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/