Hoe Varnish Cache te installeren voor Apache op CentOS/RHEL 8

Varnish Cache is een gratis open source, modern en high-performance webapplicatieversneller. Het is een snelle reverse HTTP-proxy die content in cache opslaat om de prestaties van uw webserver te verbeteren, door webinhoud in servergeheugen op te slaan. Het is geconfigureerd om voor een origineserver zoals Apache (HTTPD) webserver te draaien.

Wanneer een client om content vraagt, accepteert Varnish het HTTP verzoek, stuurt het verzoek naar de origineserver, cacheert de teruggegeven objecten en antwoordt op het clientverzoek. De volgende keer dat de client om dezelfde content vraagt, zal Varnish het vanuit de cache serveren. Op deze manier vermindert het de responstijd en netwerkbandbreedteverbruik bij toekomstige equivalente verzoeken.

Varnish werkt ook als een HTTP verzoekrouter, webtoepassingsfirewall, load balancer en meer. Het wordt geconfigureerd met behulp van de flexibele Varnish Configuration Language (VCL) die uitbreidbaar is met Varnish Modules (ook bekend als VMODs), ondersteunt Edge Side Includes (ESL), Gzip-compressie en -decompressie, en nog veel meer.

In dit artikel leert u hoe u Apache HTTPD webserver en Varnish Cache 6 installeert op een nieuwe CentOS/RHEL 8 server, inclusief het configureren van Varnish om voor de HTTPD server te draaien.

Vereisten:

Stap 1: Apache-webserver installeren op CentOS/RHEL 8

1. Begin met het bijwerken van alle geïnstalleerde softwarepakketten op het systeem als volgt met behulp van het DNF-commando.

# dnf update

2. Voer vervolgens het volgende commando uit om de Apache HTTP-webserver te installeren vanuit het AppStream-repository.

# dnf install httpd

3. Zodra de installatie is voltooid, start u de httpd-service, schakelt u deze in om automatisch te starten tijdens het opstarten van het systeem, en controleert u de status ervan om te bevestigen dat deze actief is en draait, met behulp van het systemctl-commando.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Verify Apache Web Server Status

4. Standaard bevat CentOS/RHEL 8 een volledig vergrendelde firewall (voer firewall-cmd –state uit om te bevestigen). U moet toegang openen tot de HTTP-service in de firewall om gebruikers toegang te geven tot websites of applicaties die draaien over HTTP, en ook de firewalld-instellingen opnieuw laden om de nieuwe wijzigingen toe te passen.

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

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

5. Nu de Apache-webserver actief is, kunt u verdergaan met het installeren van Varnish Cache op het systeem met behulp van het volgende commando.

# dnf module install varnish
Install Varnish Cache on CentOS 8

6. Na een succesvolle installatie kunt u de versie van Varnish die op uw systeem is geïnstalleerd verifiëren.

# varnishd -V
Check Varnish Version

7. Vervolgens wordt het hoofd uitvoerbare bestand geïnstalleerd als /usr/sbin/varnishd. Ook worden de Varnish-configuratiebestanden opgeslagen onder de map /etc/varnish, waar:

  • /etc/varnish/default.vcl – het hoofdconfiguratiebestand van Varnish is geschreven met behulp van VCL.
  • /etc/varnish/secret – het geheime bestand van Varnish is.

8. Start nu de Varnish-service, schakel deze in om automatisch te starten tijdens het opstarten van het systeem in geval van een serverherstart en controleer de status ervan om ervoor te zorgen dat deze actief is zoals hieronder.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Verify Varnish Cache Status

Stap 3: Apache configureren om samen te werken met Varnish-cache

9. Nu is het tijd om Varnish-cache te configureren om voor de Apache-service te draaien. Standaard is de Apache-server geconfigureerd om te luisteren op poort 80, dit is gedefinieerd in het hoofdconfiguratiebestand /etc/httpd/conf/httpd.conf.

Open het voor bewerking met uw favoriete teksteditor.

# vi /etc/httpd/conf/httpd.conf

Zoek naar de parameter Listen. Om Varnish voor de Apache-server te laten draaien, moet u de standaardpoort 80 wijzigen in 8080 (of een andere poort naar keuze) zoals getoond in de volgende schermafbeelding.

Deze poort wordt later toegevoegd als de poort van de backendserver in het Varnish-configuratiebestand.

Change Apache Default Port

Ook moet de virtuele hostconfiguratie voor elke website/applicatie die via Varnish wordt geserveerd, geconfigureerd worden om naar de bovenstaande poort te luisteren. Hier is de configuratie voor onze testsite (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>
Apache Virtual Host Configuration

Belangrijk: Om te voorkomen dat de standaard Apache HTTP-server testpagina ooit wordt gebruikt, moet u alle regels in het bestand /etc/httpd/conf.d/welcome.conf uitcommentariëren of gewoon het bestand verwijderen.

# rm /etc/httpd/conf.d/welcome.conf 

10. Test vervolgens de syntaxis van de httpd-configuratie op fouten. Als het OK is, herstart dan de httpd-service om de nieuwe wijzigingen toe te passen.

# httpd -t
# systemctl restart httpd
Check Apache Configuration

Varnish configureren voor Systemd

11. Om Varnish voor HTTPD in te zetten, hoeft u het alleen maar te configureren om te luisteren naar clientverzoeken op de standaard HTTP-poort 80, zoals hieronder uitgelegd.

Merk op dat in Varnish Cache 6.0 en hoger, u de poort moet instellen waarop de varnish-server luistert in het Varnish-servicebestand voor systemd. Open het eerst voor bewerking.

# systemctl edit --full  varnish

Zoek naar de regel ExecStart, wijzig dan de waarde van de -a-schakelaar (die aangeeft naar welk adres en poort varnish moet luisteren) van :6081 naar :80 zoals aangegeven in de volgende screenshot.

Belangrijk, als u geen adres opgeeft, zal varnishd luisteren op alle beschikbare IPv4 en IPv6 interfaces actief 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.

Het configureren van Varnish Backend Servers met behulp van VCL

12. Nu moet je de oorspronkelijke server configureren, bekend in de Varnish-terminologie als een backend. Het is de server waarmee Varnish communiceert om inhoud op te halen – in dit geval httpd. Het wordt geconfigureerd in het hoofdconfiguratiebestand /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Er is een standaard backend configuratiesectie genaamd default. Je kunt “default” wijzigen in server1 (of een andere naam naar keuze om te voldoen aan je omgevingsstandaarden). Standaard wijst het host-parameter naar de localhost, onder de aanname dat de backend-server op de localhost draait.

Stel vervolgens de poort in op 8080 (de poort die je hebt gedefinieerd in het Apache virtual host-configuratiebestand) zoals getoond in de screenshot.

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

Als je backend-server op een ander host draait, bijvoorbeeld een andere server met het adres 10.42.1.10, dan moet het host-parameter naar dit IP-adres wijzen.

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

Sla het bestand op en sluit het.

13. Na het maken van alle noodzakelijke wijzigingen met betrekking tot Varnish, herlaad de systemd-manager configuratie om de nieuwe wijzigingen in het Varnish-servicebestand te weerspiegelen en herstart ook de Varnish-service om de algemene wijzigingen toe te passen.

# systemctl daemon-reload
# systemctl restart varnish

14. Op dit punt zouden Varnish en Apache nu moeten luisteren op respectievelijk poort 80 en 8080. U kunt dit bevestigen met behulp van het socket statistieken commando.

# ss -tpln
Check Varnish and Apache Listening Sockets

Stap 4: Testen van Varnish Cache en Apache Setup

14. Om de Varnish Cache-HTTPD setup te testen, opent u een webbrowser en navigeert u met behulp van het server IP of FQDN zoals weergegeven in de volgende schermafbeelding.

http://10.42.0.144
OR
http://www.tecmin.lan

Controleer vervolgens of webpagina’s worden geserveerd via Varnish Cache zoals volgt. Controleer de HTTP headers door met de rechtermuisknop op de weergegeven webpagina te klikken, selecteer Inspecteren om de ontwikkelaarstools te openen, klik vervolgens op het Netwerk tabblad en vernieuw de pagina. Selecteer vervolgens een verzoek om de HTTP headers te bekijken ter bevestiging zoals weergegeven in de volgende schermafbeelding.

Check Web Page is Served via Varnish Cache

Als alternatief kunt u het volgende curl commando uitvoeren om dit te verifiëren.

# curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan
Check Varnish and Apache Setup

Nuttige Varnish Cache Hulpprogramma’s

15. Laten we deze handleiding afsluiten door te kijken naar enkele van de nuttige programma’s die worden geleverd met de Varnish Cache distributie. Ze omvatten hulpprogramma’s voor varnish cache administratie, gedetailleerde logbestanden weergeven en varnish prestatie statistieken bekijken zoals hieronder beschreven.

varnishadm

De eerste is varnishadm die wordt gebruikt om een draaiend Varnish-instantie te beheren. Het maakt een command-line interface-verbinding met varnishd. Het kan een draaiende instantie van Varnish beïnvloeden door varnishd te starten en stoppen, configuratieparameters te wijzigen, de VCL opnieuw te laden, back-ends te vermelden, en meer.

# varnishadm
> backend.list
Administer Varnish Using Varnishadm Tool

Voor meer informatie, lees man varnishadm.

varnishlog

Het volgende programma is varnishlog dat wordt gebruikt om gegevens specifiek voor verzoeken te raadplegen (bijvoorbeeld informatie over specifieke clients en verzoeken). Het biedt grote hoeveelheden informatie, dus is het meestal nodig om deze te filteren.

# varnishlog
Varnishlog – Check Varnish Cache Performance

Voor meer informatie, lees de man varnishlog.

varnishstat

We hebben ook varnishstat (varnish statistics) dat wordt gebruikt om algemene statistieken te raadplegen zoals het aantal totale verzoeken, aantal objecten, en meer.

# varnishstat
varnishstat – Show Varnish Statistics

Voor meer informatie, lees de man varnishstat.

varnishtop

Dan hebben we varnishtop dat een hulpprogramma is dat het Varnish-logboek leest en een continu bijgewerkte lijst van de meest voorkomende logboekvermeldingen presenteert.

# varnishtop 
varnishtop – Reads Varnish Logs

Voor meer informatie, lees de man varnishtop.

varnishhist

Een andere handige tool is varnishhist (varnish geschiedenis) tool leest Varnish logs en presenteert een continu bijgewerkte histogram dat de verdeling van de laatste N verzoeken toont op basis van hun verwerking.

# varnishhist
varnishstat – Show Varnish Log History

Voor meer informatie, lees de man varnishhist.

Daar heb je het! Je hebt succesvol Varnish Cache geïmplementeerd om de inhoud van je webapplicatie te versnellen, geserveerd met Apache HTTP Server op CentOS/RHEL 8.

Als je vragen hebt over dit onderwerp of gedachten wilt delen, gebruik dan het feedbackformulier hieronder. Bekijk de Varnish Cache 6.0 documentatie voor meer informatie.

Als je HTTPS op je site wilt inschakelen, bekijk dan ons volgende artikel, waarin wordt uitgelegd hoe je SSL/TLS kunt inschakelen voor Varnish Cache met behulp van Hitch op CentOS/RHEL 8.

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