Hoe Varnish Cache 6 Installeren voor Nginx Op CentOS/RHEL 8

Varnish Cache (vaak aangeduid als Varnish) is een open-source, krachtige en snelle reverse-proxy HTTP accelerator met een moderne architectuur en flexibele configuratietaal. Als een reverse proxy betekent eenvoudigweg dat het software is die je kunt implementeren voor je webserver (die de oorspronkelijke server of backend is) zoals Nginx, om HTTP-verzoeken van klanten te ontvangen en door te sturen naar de oorspronkelijke server voor verwerking. En het levert de respons van de oorspronkelijke server aan klanten.

Varnish fungeert als een tussenpersoon tussen Nginx en klanten maar met enkele prestatievoordelen. Het hoofddoel is om je applicaties sneller te laten laden, door te fungeren als een cache-engine. Het ontvangt verzoeken van klanten en stuurt ze eenmaal door naar de backend om de aangevraagde inhoud te cachen (bestanden en fragmenten van bestanden in het geheugen opslaan). Vervolgens worden alle toekomstige verzoeken voor exact dezelfde inhoud vanuit de cache bediend.

Dit zorgt ervoor dat je webapplicaties sneller laden en indirect verbetert het de algehele prestaties van je webserver omdat Varnish inhoud vanuit het geheugen zal bedienen in plaats van Nginx die bestanden verwerkt vanaf de opslagschijf.

Naast caching heeft Varnish ook verschillende andere toepassingen, waaronder een HTTP-verzoekrouter, en load balancer, web applicatie firewall, en meer.

De vernish is geconfigureerd met behulp van de zeer uitbreidbare ingebouwde Varnish Configuration Language (VCL) waarmee u beleidsregels kunt schrijven over hoe inkomende verzoeken moeten worden afgehandeld. U kunt het gebruiken om aangepaste oplossingen, regels en modules te bouwen.

In dit artikel zullen we de stappen doornemen om de Nginx webserver en Varnish Cache 6 te installeren op een nieuwe CentOS 8 of RHEL 8 server. Gebruikers van RHEL 8 moeten ervoor zorgen dat ze hun Red Hat-abonnement activeren.

Om een volledige LEMP-stack in te stellen in plaats van alleen de Nginx webserver te installeren, bekijk de volgende handleidingen.

  1. Hoe een LEMP-server te installeren op CentOS 8
  2. Hoe een LEMP-server te installeren op RHEL 8

Stap 1: Installeer de Nginx-webserver op CentOS/RHEL 8

1. De CentOS/RHEL 8 wordt geleverd met de nieuwste versie van de Nginx webserver software, dus we zullen deze installeren vanuit het standaard repository met behulp van de volgende dnf-commando’s.

# dnf update
# dnf install nginx

2. Nadat Nginx is geïnstalleerd, moet je het starten, inschakelen en de status verifiëren met behulp van de volgende systemctl-commando’s.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Verify Nginx Service Status

3. Als je een beetje nieuwsgierig bent, kun je ook de Nginx TCP-socket controleren, die standaard op poort 80 draait, met behulp van het volgende ss-commando.

# ss -tpln
Check Nginx TCP Port

4. Als je de firewall op het systeem hebt draaien, zorg er dan voor dat je de firewallregels bijwerkt om verzoeken naar een webserver toe te staan.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload

Stap 2: Varnish Cache 6 installeren op CentOS/RHEL 8

5. De CentOS/RHEL 8 biedt standaard een Varnish Cache DNF module aan die versie 6.0 LTS (Long Term Support) bevat.

Om de module te installeren, voer je het volgende commando uit.

# dnf module install varnish
Install Varnish Cache in CentOS 8

6. Zodra de module-installatie is voltooid, kunt u de versie van Varnish bevestigen die op uw systeem is geïnstalleerd.

# varnishd -V
Check Varnish Version

7. Nadat Varnish Cache is geïnstalleerd, is het hoofduitvoerbare commando geïnstalleerd onder /usr/sbin/varnishd en de Varnish-configuratiebestanden bevinden zich in /etc/varnish/.

Het bestand /etc/varnish/default.vcl is het belangrijkste Varnish-configuratiebestand dat is geschreven met behulp van VCL en /etc/varnish/secret is het geheime Varnish-bestand.

8. Start vervolgens de Varnish-service, schakel deze in om automatisch te starten tijdens het opstarten van het systeem en bevestig dat deze actief is.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Verify Varnish Cache on CentOS 8

Stap 3: Nginx configureren om te werken met Varnish Cache

9. In dit gedeelte laten we zien hoe Varnish Cache geconfigureerd kan worden om voor Nginx te draaien. Standaard luistert Nginx op poort 80, normaal gesproken is elk serverblok (of virtuele host) geconfigureerd om op deze poort te luisteren.

Bijvoorbeeld, bekijk het standaard nginx serverblok geconfigureerd in het hoofdconfiguratiebestand (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Zoek naar het serverblok gedeelte zoals te zien is in de volgende schermafbeelding.

Nginx Server Block Configuration

10. Om Varnish voor Nginx te laten draaien, moet je de standaard Nginx-poort van 80 wijzigen naar 8080 (of naar een andere poort naar keuze).

Dit moet worden gedaan in alle toekomstige serverblokconfiguratiebestanden (meestal aangemaakt onder /etc/nginx/conf.d/) voor sites of webapplicaties die je via Varnish wilt bedienen.

Bijvoorbeeld, het serverblok voor onze test site tecmint.lan is /etc/nginx/conf.d/tecmint.lan.conf en heeft de volgende configuratie.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}
Nginx Server Block Configuration

Belangrijk: Vergeet niet het standaard serverblok uit te schakelen door de configuratiesectie te commentariëren in het bestand /etc/nginx/nginx.conf zoals weergegeven in de volgende schermafbeelding. Dit stelt je in staat om andere websites/applicaties op je server te laten draaien, anders zal Nginx altijd verzoeken doorsturen naar het standaard serverblok.

Disable Nginx Server Block

11. Zodra de configuratie voltooid is, controleer het configuratiebestand op fouten en herstart de Nginx-service om recente wijzigingen toe te passen.

# nginx -t
# systemctl restart nginx
Check Nginx Configuration Syntax

12. Vervolgens, om HTTP-verzoeken van clients te ontvangen, moeten we Varnish configureren om te draaien op poort 80. In tegenstelling tot eerdere versies van Varnish Cache waar deze wijziging werd gemaakt in het Varnish-omgevingsbestand (dat nu verouderd is), in versie 6.0 en hoger.

Moeten we de vereiste wijziging aanbrengen in het Varnish-servicebestand. Voer de volgende opdracht uit om het juiste servicebestand te openen voor bewerking.

# systemctl edit --full  varnish

Zoek de volgende regel op en wijzig de waarde van de -a schakelaar, die het luisteradres en de poort specificeert. Stel de poort in op 80 zoals getoond in de volgende schermafbeelding.

Merk op dat als je geen adres opgeeft, varnishd zal luisteren op alle beschikbare IPv4 en IPv6 interfaces die actief zijn op de server.

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

Sla de wijzigingen op in het bestand en sluit af.

13. Vervolgens moet je de backend server definiëren die Varnish zal bezoeken om content op te halen. Dit wordt gedaan in het hoofd configuratiebestand van Varnish.

# vi /etc/varnish/default.vcl 

Zoek de standaard backend configuratie sectie op en wijzig de string “default” naar server1 (of een andere naam naar keuze om je origin server te vertegenwoordigen). Stel vervolgens de poort in op 8080 (of de Nginx luisterpoort die je hebt gedefinieerd in je serverblok).

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}
Set Default Varnish Backend Servers

Voor deze handleiding draaien we Varnish en Nginx op dezelfde server. Als je Nginx-webserver op een ander host draait. Bijvoorbeeld, een andere server met het adres 10.42.0.247, stel dan het .host parameter in zoals getoond.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Sla het bestand op en sluit het.

14. Vervolgens moet je de systemd manager configuratie herladen vanwege de recente wijzigingen in het Varnish-servicebestand, en vervolgens de Varnish-service herstarten om de wijzigingen toe te passen zoals hieronder wordt weergegeven.

# systemctl daemon-reload
# systemctl restart varnish

15. Bevestig nu dat Nginx en Varnish luisteren op de geconfigureerde TCP-sockets.

# ss -tpln
Confirm Nginx and Varnish Ports

Stap 4: Testen van Nginx Varnish Cache Setup

16. Verifieer vervolgens of de webpagina’s worden geserveerd via Varnish Cache als volgt. Open een webbrowser en navigeer met behulp van het server-IP of FDQN zoals weergegeven in de volgende schermafbeelding.

http://www.tecmin.lan
OR
http://10.42.0.144
Verify Nginx Pages Served Via Varnish Cache

17. Gebruik als alternatief de curl-opdracht zoals weergegeven. Gebruik het IP-adres van uw server of de FQDN van de website of gebruik 127.0.0.1 of localhost als u lokaal test.

# curl -I http:///www.tecmint.lan
Verify Nginx Varnish Cache Page Using Curl

Handige Varnish Cache-beheerhulpprogramma’s

18. In dit laatste gedeelte zullen we kort enkele nuttige hulpprogramma’s beschrijven die worden geleverd met Varnish Cache, die u kunt gebruiken om varnishd te beheren, toegang te krijgen tot in-memory logs en algemene statistieken en meer.

varnishadm

varnishadm een hulpprogramma om een draaiende Varnish-instantie te beheren. Het maakt een CLI-verbinding met varnishd tot stand. U kunt het bijvoorbeeld gebruiken om geconfigureerde back-ends op te lijsten zoals weergegeven in de volgende schermafbeelding (lees man varnishadm voor meer informatie).

# varnishadm
varnish> backend.list
List Configured Backends

varnishlog

De varnishlog utility biedt toegang tot gegevens specifiek voor een verzoek. Het biedt informatie over specifieke clients en verzoeken (lees man varnishlog voor meer informatie).

# varnishlog
Check Info About Clients and Requests

varnishstat

A varnishstat also known as varnish statistics, which gives you a glance at Varnish’s current performance by providing access to in-memory statistics such as cache hits and misses, information about the storage, threads created, deleted objects (read man varnishstat for more information).

# varnishstat 
Show Varnish Statistics

varnishtop

A varnishtop utility reads the shared memory logs and presents a continuously updated list of the most commonly occurring log entries (read man varnishtop for more information).

# varnishtop 
View Shared Memory logs

varnishhist

A varnishhist (varnish history) utility parses the varnish logs and outputs a continuously updated histogram showing the distribution of the last n requests by their processing (read man varnishhist for more information).

# varnishhist
Show Requests Histogram

Dat is alles! In deze handleiding hebben we laten zien hoe je Varnish Cache installeert en laat draaien voor de Nginx HTTP server om de webinhoudslevering te versnellen in CentOS/RHEL 8.

Gedachten of vragen over deze handleiding kunnen worden gedeeld via het feedbackformulier hieronder. Voor meer informatie, lees de Varnish Cache-documentatie.

Het belangrijkste nadeel van Varnish Cache is het gebrek aan native ondersteuning voor HTTPS. Om HTTPS in te schakelen voor je website/applicatie, moet je een SSL/TLS-beëindigingsproxy configureren om samen te werken met Varnish Cache om je site te beschermen. In ons volgende artikel laten we zien hoe je HTTPS inschakelt voor Varnish Cache met behulp van Hitch op CentOS/RHEL 8.

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