Zoeken op website

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


Varnish Cache is een gratis open source, moderne en krachtige webapplicatieversneller. Het is een snelle omgekeerde HTTP-proxy die inhoud in de cache opslaat om de prestaties van uw webserver te versnellen, door webinhoud op te slaan in het servergeheugen – in een cache. Het is geconfigureerd om te worden uitgevoerd vóór een oorspronkelijke server, zoals een Apache (HTTPD) webserver.

Wanneer een client om inhoud vraagt, accepteert Varnish het HTTP-verzoek, stuurt het verzoek naar de oorspronkelijke server, slaat de geretourneerde objecten op in de cache en antwoordt op het clientverzoek. De volgende keer dat de klant om dezelfde inhoud vraagt, zal Varnish deze vanuit de cache serveren. Op deze manier vermindert het de responstijd en het netwerkbandbreedteverbruik bij toekomstige gelijkwaardige verzoeken.

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

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

Vereisten:

  • Een server met CentOS 8-installatie
  • Een server met RHEL 8-installatie met ingeschakeld Red Hat-abonnement op uw systeem.

Stap 1: Apache Web Server installeren op CentOS/RHEL 8

1. Begin met het updaten van alle geïnstalleerde softwarepakketten op het systeem als volgt met behulp van de DNF-opdracht.

dnf update

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

dnf install httpd

3. Zodra de installatie voltooid is, 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, met behulp van de opdracht systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. CentOS/RHEL 8 bevat standaard een volledig vergrendelde firewall (voer firewall-cmd –state uit om te bevestigen). U moet de toegang tot de HTTP-service in de firewall openen om gebruikers toegang te geven tot websites of applicaties die via HTTP draaien, en ook de firewall-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 de volgende opdracht.

dnf module install varnish

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

varnishd -V

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

  • /etc/varnish/default.vcl – is het belangrijkste lakconfiguratiebestand geschreven met VCL.
  • /etc/varnish/secret – is het geheime vernisbestand.

8. Start nu de lakservice. Schakel deze voorlopig in om automatisch te starten tijdens het opstarten van het systeem in geval van een herstart van de server en controleer de status ervan om er zeker van te zijn dat deze als volgt actief is.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Stap 3: Apache configureren om met Varnish Cache te werken

9. Nu is het tijd om Varnish Cache te configureren zodat deze vóór de Apache-service wordt uitgevoerd. 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 uit te voeren, moet u de standaardpoort 80 wijzigen in 8080 (of een andere poort naar keuze) zoals weergegeven in de volgende schermafbeelding.

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

Ook moet de virtuele hostconfiguratie voor elke website/applicatie die via Varnish wordt bediend, worden geconfigureerd 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>

Belangrijk: om te voorkomen dat de standaard Apache HTTP-servertestpagina ooit wordt gebruikt, moet je alle regels in het bestand /etc/httpd/conf.d van commentaar voorzien. /welcome.conf of verwijder eenvoudigweg het bestand.

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

10. Test vervolgens de httpd-configuratiesyntaxis op eventuele fouten. Als het goed is, start u de httpd-service opnieuw op om de nieuwe wijzigingen toe te passen.

httpd -t
systemctl restart httpd

Vernis configureren voor Systemd

11. Om Varnish vóór HTTPD te implementeren, hoeft u het alleen maar te configureren om naar clientverzoeken te luisteren in de standaard HTTP-poort 80, zoals uitgelegd onderstaand.

Houd er rekening mee dat u in Varnish Cache 6.0 en hoger de poort lakserver moet instellen waarnaar de lakserver luistert in het Varnish-servicebestand voor systemd. Open het eerst om te bewerken.

systemctl edit --full  varnish

Zoek naar de regel ExecStart en wijzig vervolgens de waarde van de schakelaar -a (die specificeert hoe de lak naar het adres en de poort luistert) van :6081 naar :80 zoals aangegeven in de volgende schermafbeelding.

Belangrijk is dat als u geen adres opgeeft, varnishd luistert naar 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

Sla de wijzigingen in het bestand op en sluit af.

Varnish Backend-servers configureren met behulp van VCL

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

vi /etc/varnish/default.vcl 

Er is een standaard backend-configuratiegedeelte met de naam default. U kunt “standaard” wijzigen in server1 (of een andere naam naar keuze om aan uw omgevingsnormen te voldoen). Standaard verwijst de parameter host naar de localhost, ervan uitgaande dat de backend-server op de localhost draait.

Stel vervolgens de poort in op 8080 (de poort die u hebt gedefinieerd in het configuratiebestand van de virtuele Apache-host), zoals weergegeven in de schermafbeelding.

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

Als uw backend-server op een andere host draait, bijvoorbeeld een andere server met adres 10.42.1.10, dan moet de parameter host verwijzen naar dit IP-adres.

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

Sla het bestand op en sluit het.

13. Nadat u alle noodzakelijke wijzigingen met betrekking tot Varnish hebt aangebracht, laadt u de systemd managerconfiguratie opnieuw om de nieuwe wijzigingen in het Varnish-servicebestand weer te geven en start u ook opnieuw op 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 respectievelijk op poort 80 en 8080 moeten luisteren. U kunt dit bevestigen met behulp van het socketstatistiekencommando.

ss -tpln

Stap 4: Varnish Cache en Apache-installatie testen

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

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

Controleer vervolgens als volgt of webpagina's via Varnish Cache worden weergegeven. 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 tabblad Netwerk en herlaad de pagina. Selecteer vervolgens een verzoek om de HTTP-headers te bekijken om dit te bevestigen, zoals weergegeven in de volgende schermafbeelding.

Als alternatief kunt u de volgende curl-opdracht uitvoeren om deze te verifiëren.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Handige Varnish Cache-hulpprogramma's

15. Laten we deze handleiding afsluiten met enkele nuttige programma's die bij de Varnish Cache-distributie worden geleverd. Ze omvatten hulpprogramma's voor het beheer van de verniscache, het weergeven van gedetailleerde logrecords en het bekijken van vernisprestatiestatistieken, zoals hieronder beschreven.

lakadm

De eerste is varnishadm, die wordt gebruikt om een actieve Varnish-instantie te beheren. Het brengt een opdrachtregelinterfaceverbinding tot stand met varnishd. Het kan een actieve instantie van Varnish beïnvloeden door varnishd te starten en te stoppen, configuratieparameters te wijzigen, de VCL opnieuw te laden, backends weer te geven en meer.

varnishadm
> backend.list

Voor meer informatie, lees man vernisadm.

laklog

Het volgende programma is varnishlog dat wordt gebruikt om toegang te krijgen tot verzoekspecifieke gegevens (dat wil zeggen informatie over specifieke klanten en verzoeken). Het biedt grote hoeveelheden informatie, dus het is meestal nodig om deze te filteren.

varnishlog

Lees voor meer informatie de man laklog.

lakstat

We hebben ook varnishstat (vernisstatistieken) die wordt gebruikt om toegang te krijgen tot algemene statistieken, zoals het totale aantal verzoeken, het aantal objecten en meer.

varnishstat

Lees voor meer informatie de man lakstat.

laktop

Dan hebben we varnishtop, een hulpprogramma dat het Varnish-logbestand leest en een voortdurend bijgewerkte lijst presenteert van de meest voorkomende logboekvermeldingen.

varnishtop 

Voor meer informatie, lees de man laktop.

lakhist

Een ander nuttig hulpprogramma is het hulpprogramma varnishhist (vernisgeschiedenis). Dit hulpprogramma leest Varnish-logboeken en presenteert een voortdurend bijgewerkt histogram dat de verdeling van de laatste N verzoeken per hun verwerken.

varnishhist

Voor meer informatie, lees de man lakhist.

Daar heb je het! U heeft met succes Varnish Cache geïmplementeerd om de inhoud van uw webapplicatie te versnellen, die wordt weergegeven met de Apache HTTP Server op CentOS/RHEL 8.

Als u vragen heeft over dit onderwerp of als u ideeën wilt delen, kunt u het onderstaande feedbackformulier gebruiken. Bekijk de Varnish Cache 6.0-documentatie voor meer informatie.

Als u HTTPS op uw site wilt inschakelen, lees dan ons volgende artikel, waarin wordt getoond hoe u SSL/TLS voor Varnish Cache kunt inschakelen met Hitch op CentOS/RHEL 8.