Slik installerer du Varnish Cache 6 for Nginx på CentOS/RHEL 8


Varnish Cache (ofte referert til som Varnish) er en åpen kildekode, kraftig og rask revers-proxy HTTP-akselerator med moderne arkitektur og fleksibel konfigurasjonsspråk. Å være en omvendt proxy betyr ganske enkelt at det er programvare som du kan distribuere foran webserveren din (som er opprinnelsesserveren eller backend), for eksempel Nginx, for å motta klienters HTTP-forespørsler og videresende dem til opprinnelsesserver for behandling. Og den leverer svaret fra opprinnelsesserveren til klientene.

Varnish fungerer som en mellommann mellom Nginx og klienter, men med noen ytelsesfordeler. Hovedformålet er å få applikasjonene dine til å lastes raskere, ved å fungere som en hurtigbuffermotor. Den mottar forespørsler fra klienter og videresender dem til backend én gang for å cache det forespurte innholdet (lagre filer og fragmenter av filer i minnet). Da vil alle fremtidige forespørsler om nøyaktig lignende innhold bli servert fra cachen.

Dette gjør at nettapplikasjonene dine lastes raskere og indirekte forbedrer webserverens generelle ytelse fordi Varnish vil vise innhold fra minnet i stedet for Nginx som behandler filer fra lagringsdisken.

Bortsett fra caching, har Varnish også flere andre brukstilfeller, inkludert en HTTP-forespørselsruter, og lastbalanser, nettapplikasjonsbrannmur og mer.

lakken er konfigurert ved hjelp av det svært utvidbare innebygde lakkkonfigurasjonsspråket (VCL) som lar deg skrive retningslinjer for hvordan innkommende forespørsler skal være håndtert. Du kan bruke den til å bygge tilpassede løsninger, regler og moduler.

I denne artikkelen vil vi gå gjennom trinnene for å installere Nginx-nettserveren og Varnish Cache 6 på en ny CentOS 8 eller RHEL 8server. RHEL 8-brukere bør sørge for at de aktiverer Redhat-abonnement.

For å sette opp, en komplett LEMP-stabel i stedet for å installere Nginx-nettserveren alene, sjekk ut følgende veiledninger.

  1. Hvordan installere LEMP Server på CentOS 8
  2. Hvordan installere LEMP Server på RHEL 8

Trinn 1: Installer Nginx Web Server på CentOS/RHEL 8

1. CentOS/RHEL 8 leveres med den nyeste versjonen av Nginx-nettserverprogramvaren, så vi installerer den fra standardlageret ved å bruke følgende dnf-kommandoer.

dnf update
dnf install nginx

2. Når Nginx er installert, må du starte, aktivere og bekrefte statusen ved å bruke følgende systemctl-kommandoer.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Hvis du er litt nysgjerrig, kan du også sjekke Nginx TCP-kontakten, som kjører på port 80 som standard, ved å bruke følgende ss-kommando.

ss -tpln

4. Hvis du kjører brannmuren på systemet, sørg for å oppdatere brannmurreglene for å tillate forespørsler til en webserver.

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

Trinn 2: Installere Varnish Cache 6 på CentOS/RHEL 8

5. CentOS/RHEL 8 gir som standard en Varnish Cache DNF-modul som inneholder versjon 6.0 LTS (Long Term Support).

For å installere modulen, kjør følgende kommando.

dnf module install varnish

6. Når modulinstallasjonen er fullført, kan du bekrefte versjonen av Varnish som er installert på systemet ditt.

varnishd -V

7. Etter å ha installert Varnish Cache, er den kjørbare hovedkommandoen installert under /usr/sbin/varnishd og lakkkonfigurasjonsfilene plassert i /etc/varnish/.

Filen /etc/varnish/default.vcl er den viktigste konfigurasjonsfilen for lakk skrevet med VCL og /etc/varnish/secret er lakk hemmelig fil.

8. Start deretter Lakk-tjenesten, aktiver den til å starte automatisk under systemoppstart og bekreft at den er oppe og kjører.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Trinn 3: Konfigurere Nginx til å fungere med Varnish Cache

9. I denne delen vil vi vise hvordan du konfigurerer Varnish Cache til å kjøre foran Nginx. Som standard lytter Nginx på port 80, normalt er hver serverblokk (eller virtuell vert) konfigurert til å lytte på denne porten.

Ta for eksempel en titt på standard nginx-serverblokken som er konfigurert i hovedkonfigurasjonsfilen (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Se etter serverblokkdelen som vist i følgende skjermbilde.

10. For å kjøre Vernish foran Nginx, bør du endre standard Nginx-port fra 80 til >8080 (eller hvilken som helst annen port du ønsker).

Dette bør gjøres i alle fremtidige serverblokkkonfigurasjonsfiler (vanligvis opprettet under /etc/nginx/conf.d/) for nettsteder eller nettapplikasjoner som du ønsker å betjene via Lakk >.

For eksempel er serverblokken for vår testside tecmint.lan /etc/nginx/conf.d/tecmint.lan.conf og har følgende konfigurasjon.

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 {
        }
}

Viktig: Husk å deaktivere standard serverblokk ved å kommentere konfigurasjonsdelen i filen /etc/nginx/nginx.conf som vist i følgende skjermbilde. Dette gjør at du kan begynne å kjøre andre nettsteder/applikasjoner på serveren din, ellers vil Nginx alltid sende forespørsler til standard serverblokk.

11. Når konfigurasjonen er fullført, sjekk konfigurasjonsfilen for eventuelle feil og start Nginx-tjenesten på nytt for å bruke nylige endringer.

nginx -t
systemctl restart nginx

12. Deretter, for å motta HTTP-forespørsler fra klienter, må vi konfigurere Lakk til å kjøre på port 80. I motsetning til tidligere versjoner av Varnish Cache hvor denne endringen ble gjort i Varnish-miljøfilen (som nå er avviklet), i versjon 6.0 og nyere .

Vi må gjøre den nødvendige endringen i Varnish-tjenestefilen. Kjør følgende kommando for å åpne den aktuelle tjenestefilen for redigering.

systemctl edit --full  varnish

Finn følgende linje og endre verdien til -a-bryteren, som spesifiserer lytteadressen og porten. Sett porten til 80 som vist i følgende skjermbilde.

Merk at hvis du ikke angir en adresse, vil varnishd lytte på alle tilgjengelige IPv4- og IPv6-grensesnitt som er aktive på serveren.

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

Lagre endringene i filen og avslutt.

13. Deretter må du definere backend-serveren som Varnish vil besøke for å hente innhold fra. Dette gjøres i hovedkonfigurasjonsfilen til Varnish.

vi /etc/varnish/default.vcl 

Se etter standard backend-konfigurasjonsseksjonen og endre strengen "standard " til server1 (eller et hvilket som helst navn du velger for å representere opprinnelsesserveren). Sett deretter porten til 8080 (eller Nginx-lytteporten du definerte i serverblokken).

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

For denne veiledningen kjører vi Varnish og Nginx på samme server. Hvis Nginx-webserveren din kjører på en annen vert. For eksempel, en annen server med adressen 10.42.0.247, sett deretter parameteren .host som vist.

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

Lagre filen og lukk den.

14. Deretter må du laste inn systemd-administratorkonfigurasjonen på nytt på grunn av de siste endringene i Varnish-tjenestefilen, og deretter starte Varnish-tjenesten på nytt for å bruke endringene som følger.

systemctl daemon-reload
systemctl restart varnish

15. Bekreft nå at Nginx og Varnish lytter på de konfigurerte TCP-kontaktene.

ss -tpln

Trinn 4: Testing av Nginx Varnish Cache-oppsett

16. Deretter bekrefter du at nettsidene blir servert via Varnish Cache som følger. Åpne en nettleser og naviger ved å bruke serverens IP eller FDQN som vist i følgende skjermbilde.

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

17. Alternativt kan du bruke curl-kommandoen som vist. Bruk serverens IP-adresse eller nettstedets FQDN eller bruk 127.0.0.1 eller localhost hvis du tester lokalt.

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

Nyttige verktøy for administrasjon av lakkbuffer

18. I denne siste delen vil vi kort beskrive noen av de nyttige hjelpeprogrammene som Varnish Cache leveres med, som du kan bruke til å kontrollere varnishd >, få tilgang til minnelogger og generell statistikk og mer.

varnishadm

varnishadm et verktøy for å kontrollere en kjørende Varnish-forekomst. Den etablerer en CLI-forbindelse til lakk. Du kan for eksempel bruke den til å liste opp konfigurerte backends som vist i følgende skjermbilde (les man varnishadm for mer informasjon).

varnishadm
varnish> backend.list

lakklogg

Verktøyet varnishlog gir tilgang til forespørselsspesifikke data. Den tilbyr informasjon om spesifikke kunder og forespørsler (les man varnishlog for mer informasjon).

varnishlog

lakkstat

En varnishstat også kjent som lakkstatistikk, som gir deg et blikk på Varnishs nåværende ytelse ved å gi tilgang til statistikk i minnet som cache-treff og -misser, informasjon om lagringen , opprettede tråder, slettede objekter (les man varnishstat for mer informasjon).

varnishstat 

lakktopp

Et varnishtop-verktøy leser de delte minneloggene og presenterer en kontinuerlig oppdatert liste over de vanligste loggoppføringene (les man varnishtop for mer informasjon).

varnishtop 

lakkist

Et fernisshist (lakkhistorikk)-verktøy analyserer lakkloggene og sender ut et kontinuerlig oppdatert histogram som viser fordelingen av de siste n-forespørslene etter behandlingen ( lesman varnishhist for mer informasjon).

varnishhist

Det er alt! I denne veiledningen har vi vist hvordan du installerer Varnish Cache og kjører den foran Nginx HTTP-serveren for å akselerere levering av nettinnhold i CentOS/RHEL 8<.

Eventuelle tanker eller spørsmål om denne veiledningen kan deles ved å bruke tilbakemeldingsskjemaet nedenfor. For mer informasjon, les Varnish Cache-dokumentasjonen.

Den største ulempen med Varnish Cache er mangelen på innebygd støtte for HTTPS. For å aktivere HTTPS på nettstedet/applikasjonen din, må du konfigurere en SSL/TLS-termineringsproxy for å fungere sammen med Varnish Cache for å beskytte nettstedet ditt. I vår neste artikkel vil vi vise hvordan du aktiverer HTTPS for Varnish Cache ved å bruke Hitch på CentOS/RHEL 8.