Zoeken op website

Hoe Varnish Cache 6 voor Nginx op CentOS/RHEL 8 te installeren


Varnish Cache (gewoonlijk Varnish genoemd) is een open-source, krachtige en snelle reverse-proxy HTTP-accelerator met moderne architectuur en flexibel configuratie taal. Omdat u een reverse proxy bent, betekent dit eenvoudigweg dat het software is die u voor uw webserver (de oorspronkelijke server of backend) kunt implementeren, zoals Nginx, om HTTP-verzoeken van klanten te ontvangen en deze door te sturen naar de oorsprongserver voor verwerking. En het levert het antwoord van de oorspronkelijke server aan clients.

Varnish fungeert als tussenpersoon tussen Nginx en klanten, maar met enkele prestatievoordelen. Het belangrijkste doel is om uw applicaties sneller te laten laden, door te werken als een caching-engine. Het ontvangt verzoeken van clients en stuurt deze één keer door naar de backend om de gevraagde inhoud in de cache op te slaan (bestanden en fragmenten van bestanden in het geheugen op te slaan). Vervolgens worden alle toekomstige verzoeken voor exact vergelijkbare inhoud vanuit de cache afgehandeld.

Hierdoor worden uw webapplicaties sneller geladen en worden indirect de algehele prestaties van uw webserver verbeterd, omdat Varnish inhoud uit het geheugen levert in plaats van dat Nginx bestanden van de opslagschijf verwerkt.

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

De vernis wordt geconfigureerd met behulp van de zeer uitbreidbare ingebouwde Varnish Configuration Language (VCL), waarmee u beleid kunt schrijven over hoe inkomende verzoeken moeten worden behandeld afgehandeld. U kunt het gebruiken om oplossingen, regels en modules op maat te bouwen.

In dit artikel doorlopen we de stappen om de Nginx webserver en Varnish Cache 6 te installeren op een nieuwe CentOS 8 of RHEL 8-server. RHEL 8-gebruikers moeten ervoor zorgen dat ze een redhat-abonnement inschakelen.

Bekijk de volgende handleidingen om een volledige LEMP-stack in te stellen in plaats van alleen de Nginx-webserver te installeren.

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

Stap 1: Installeer Nginx Web Server op CentOS/RHEL 8

1. De CentOS/RHEL 8 wordt geleverd met de nieuwste versie van Nginx webserversoftware, dus we zullen deze installeren vanuit de standaardrepository met behulp van de volgende dnf-opdrachten.

dnf update
dnf install nginx

2. Zodra Nginx is geïnstalleerd, moet je de status starten, inschakelen en verifiëren met de volgende systemctl-opdrachten.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

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

ss -tpln

4. Als u de firewall op het systeem gebruikt, zorg er dan voor dat u de firewallregels bijwerkt om verzoeken aan 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. CentOS/RHEL 8 biedt standaard een Varnish Cache DNF module die versie 6.0 bevat LTS (Langetermijnondersteuning).

Voer de volgende opdracht uit om de module te installeren.

dnf module install varnish

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

varnishd -V

7. Na het installeren van Varnish Cache, bevinden de belangrijkste uitvoerbare opdracht die is geïnstalleerd onder /usr/sbin/varnishd en de vernisconfiguratiebestanden zich in /etc/vernis/.

Het bestand /etc/varnish/default.vcl is het hoofdlakconfiguratiebestand geschreven met VCL en /etc/varnish/secret is de lak geheim 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

Stap 3: Nginx configureren om met Varnish Cache te werken

9. In deze sectie laten we zien hoe u Varnish Cache kunt configureren zodat deze vóór Nginx wordt uitgevoerd. Standaard luistert Nginx op poort 80, normaal gesproken is elk serverblok (of virtuele host) geconfigureerd om op deze poort te luisteren.

Kijk bijvoorbeeld eens naar het standaard nginx-serverblok dat is geconfigureerd in het hoofdconfiguratiebestand (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Zoek naar het serverblokgedeelte zoals weergegeven in de volgende schermafbeelding.

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

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

Het serverblok voor onze testsite tecmint.lan is bijvoorbeeld /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 {
        }
}

Belangrijk: vergeet niet om het standaard serverblok uit te schakelen door commentaar te geven op de configuratiesectie in het bestand /etc/nginx/nginx.conf, zoals weergegeven in de volgende schermafbeelding. Hierdoor kunt u andere websites/applicaties op uw server gaan draaien, anders zal Nginx altijd verzoeken naar het standaard serverblok leiden.

11. Zodra de configuratie is voltooid, controleert u het configuratiebestand op eventuele fouten en start u de Nginx-service opnieuw om recente wijzigingen toe te passen.

nginx -t
systemctl restart nginx

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

We moeten de vereiste wijziging aanbrengen in het Varnish-servicebestand. Voer de volgende opdracht uit om het juiste servicebestand te openen om te bewerken.

systemctl edit --full  varnish

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

Let op: als u geen adres opgeeft, luistert varnishd 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.

13. Vervolgens moet u de backend-server definiëren die Varnish zal bezoeken om inhoud op te halen. Dit gebeurt in het hoofdconfiguratiebestand van Varnish.

vi /etc/varnish/default.vcl 

Zoek naar het standaard backend-configuratiegedeelte en wijzig de tekenreeks “standaard” in server1 (of een andere naam naar keuze om uw oorspronkelijke server weer te geven). Stel vervolgens de poort in op 8080 (of de Nginx-luisterpoort die u in uw serverblok hebt gedefinieerd).

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

Voor deze handleiding gebruiken we Varnish en Nginx op dezelfde server. Als uw Nginx-webserver op een andere host draait. Bijvoorbeeld een andere server met adres 10.42.0.247 en stel vervolgens de parameter .host in zoals weergegeven.

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

Sla het bestand op en sluit het.

14. Vervolgens moet u de systemd managerconfiguratie opnieuw laden vanwege de recente wijzigingen in het Varnish-servicebestand en vervolgens de Varnish-service opnieuw starten om de wijzigingen als volgt toe te passen.

systemctl daemon-reload
systemctl restart varnish

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

ss -tpln

Stap 4: Nginx Varnish Cache-installatie testen

16. Controleer vervolgens als volgt of de webpagina's via Varnish Cache worden weergegeven. 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

17. U kunt ook de krulopdracht gebruiken, zoals weergegeven. Gebruik het IP-adres van uw server of de FQDN van uw website of gebruik 127.0.0.1 of localhost als u lokaal test.

curl -I http:///www.tecmint.lan

Handige vernish cache-beheerprogramma's

18. In dit laatste gedeelte zullen we kort enkele van de nuttige hulpprogramma's beschrijven die bij Varnish Cache worden geleverd en die u kunt gebruiken om varnishd te besturen >, toegang tot in-memory logs en algemene statistieken en meer.

lakadm

varnishadm een hulpprogramma om een actieve Varnish-instantie te beheren. Er wordt een CLI-verbinding met gelakt tot stand gebracht. U kunt het bijvoorbeeld gebruiken om geconfigureerde backends weer te geven, zoals weergegeven in de volgende schermafbeelding (lees man vernisadm voor meer informatie).

varnishadm
varnish> backend.list

laklog

Het hulpprogramma varnishlog biedt toegang tot verzoekspecifieke gegevens. Het biedt informatie over specifieke klanten en verzoeken (lees man laklog voor meer informatie).

varnishlog

lakstat

Een varnishstat, ook bekend als varnish-statistieken, waarmee u een blik kunt werpen op de huidige prestaties van Varnish door toegang te bieden tot statistieken in het geheugen, zoals cachehits en -missers, en informatie over de opslag , threads gemaakt, verwijderde objecten (lees man lakstat voor meer informatie).

varnishstat 

laktop

Een varnishtop-hulpprogramma leest de gedeelde geheugenlogboeken en presenteert een voortdurend bijgewerkte lijst van de meest voorkomende logboekvermeldingen (lees man vernishtop voor meer informatie).

varnishtop 

lakhist

Een hulpprogramma varnishhist (vernisgeschiedenis) ontleedt de vernislogboeken en voert een continu bijgewerkt histogram uit dat de distributie toont van de laatste n verzoeken door hun verwerking ( lees man lakhist voor meer informatie).

varnishhist

Dat is alles! In deze handleiding hebben we laten zien hoe u Varnish Cache kunt installeren en uitvoeren voor de Nginx HTTP-server om de levering van webinhoud in CentOS/RHEL 8< te versnellen /sterk>.

Eventuele gedachten of vragen over deze handleiding kunnen worden gedeeld via het onderstaande feedbackformulier. Lees de Varnish Cache-documentatie voor meer informatie.

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