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


Varnish Cache er en gratis åpen kildekode, moderne og høyytelses nettapplikasjonsakselerator. Det er en rask omvendt HTTP-proxy som cacher innhold for å øke hastigheten på nettserverytelsen ved å lagre webinnhold i serverminnet – i en cache. Den er konfigurert til å kjøre foran en opprinnelsesserver som Apache (HTPD) nettserver.

Når en klient ber om innhold, godtar Varnish HTTP-forespørselen, sender forespørselen til opprinnelsesserveren, bufrer de returnerte objektene og svarer på klientforespørselen. Neste gang klienten ber om det samme innholdet, vil Varnish servere det fra cachen. På denne måten reduserer det responstiden og nettverksbåndbreddeforbruket på fremtidige tilsvarende forespørsler.

Lakk fungerer også som en HTTP-forespørselsruter, nettapplikasjonsbrannmur, lastbalanserer og mer. Den er konfigurert ved hjelp av det fleksible Varnish Configuration Language (VCL) som kan utvides med Varnish Modules (også kjent som VMODs) >), støtter Edge Side Includes (ESL), Gzip-komprimering og -dekompresjon og mye mer.

I denne artikkelen lærer du hvordan du installerer Apache HTTPD-nettserver og Varnish Cache 6 på en ny CentOS/RHEL 8-server, inkludert konfigurering Lakk for å kjøre foran HTTPD-serveren.

Forutsetninger:

  • En server med CentOS 8-installasjon
  • En server med RHEL 8-installasjon med aktivert Red Hat-abonnement på systemet ditt.

Trinn 1: Installere Apache Web Server på CentOS/RHEL 8

1. Begynn med å oppdatere alle installerte programvarepakker på systemet som følger ved å bruke DNF-kommandoen.

dnf update

2. Kjør deretter følgende kommando for å installere Apache HTTP-nettserveren fra AppStream-depotet.

dnf install httpd

3. Så snart installasjonen er fullført, start httpd-tjenesten, aktiver den til å starte automatisk under systemoppstart, og kontroller statusen for å bekrefte at den er oppe og kjører, ved å bruke systemctl-kommandoen.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Som standard inkluderer CentOS/RHEL 8 en fullstendig låst brannmur (kjør firewall-cmd –state for å bekrefte). Du må åpne tilgangen til HTTP-tjenesten i brannmuren for å gi brukere tilgang til nettsteder eller applikasjoner som kjører over HTTP, og også laste inn brannmurinnstillingene på nytt for å bruke de nye endringene.

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

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

5. Nå som Apache-nettserveren kjører, kan du fortsette videre for å installere Varnish Cache på systemet ved å bruke følgende kommando.

dnf module install varnish

6. Etter en vellykket installasjon kan du verifisere versjonen av Varnish som er installert på systemet ditt.

varnishd -V

7. Deretter installeres den kjørbare hovedfilen som /usr/sbin/varnishd. Varnish-konfigurasjonsfilene er også lagret under /etc/varnish-katalogen, der:

  • /etc/varnish/default.vcl – er den viktigste konfigurasjonsfilen for lakk skrevet med VCL.
  • /etc/varnish/secret – er den hemmelige lakkfilen.

8. Start nå lakk-tjenesten, for nå, aktiver den til å starte automatisk under systemoppstart i tilfelle en server omstart og kontroller statusen for å sikre at den kjører som følger.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Trinn 3: Konfigurere Apache til å fungere med Varnish Cache

9. Nå er det på tide å konfigurere Varnish Cache til å kjøre foran Apache-tjenesten. Som standard er Apache-serveren konfigurert til å lytte på port 80, dette er definert i hovedkonfigurasjonsfilen /etc/httpd/conf/httpd.conf.

Åpne den for redigering ved å bruke din favoritt tekstredigerer.

vi /etc/httpd/conf/httpd.conf

Se etter parameteren Lytt. For å kjøre Varnish foran Apache-serveren, bør du endre standardporten 80 til 8080 (eller en hvilken som helst annen port etter eget valg) som vist i følgende skjermbilde.

Denne porten vil bli lagt til som backend-serverens port i Varnish-konfigurasjonsfilen senere.

Den virtuelle vertskonfigurasjonen for hvert nettsted/applikasjon som skal betjenes via Lakk bør også konfigureres til å lytte til porten ovenfor. Her er konfigurasjonen for testsiden vår (/etc/httpd/conf.d/tecmint.lan.conf).

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

Viktig: For å forhindre at standard Apache HTTP-servertestside noen gang blir brukt, kommenter alle linjene i filen /etc/httpd/conf.d /welcome.conf eller slett filen.

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

10. Deretter tester du httpd-konfigurasjonssyntaksen for eventuelle feil. Hvis det er OK, start httpd-tjenesten på nytt for å bruke de nye endringene.

httpd -t
systemctl restart httpd

Konfigurere lakk for Systemd

11. For å distribuere Varnish foran HTTPD, trenger du bare å konfigurere den til å lytte til klientforespørsler i standard HTTP-port 80 som forklart under.

Merk at i Varnish Cache 6.0 og høyere, må du angi port som lakkserveren lytter til i Varnish-tjenestefilen for systemd. Først åpner du den for redigering.

systemctl edit --full  varnish

Se etter ExecStart-linjen, og endre deretter verdien til -a-bryteren (som spesifiserer lakken lytte til adressen og porten) fra :6081 til :80 som angitt i følgende skjermbilde.

Viktigere, 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.

Konfigurere Varnish Backend-servere ved hjelp av VCL

12. Nå må du konfigurere opprinnelsesserveren, kjent i Farnish-terminologien som en backend. Det er serveren som forstår HTTP, Varnish snakker med, for å hente innhold – httpd i dette tilfellet. Den er konfigurert i hovedkonfigurasjonsfilen /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Det er en standard konfigurasjonsdel for backend kalt standard. Du kan endre «standard» til server1 (eller hvilket som helst navn du velger for å oppfylle miljøstandardene dine). Som standard peker vert-parameteren til localhost, forutsatt at backend-serveren kjører på localhost.

Sett deretter porten til 8080 (porten du definerte i konfigurasjonsfilen for Apache virtuell vert) som vist på skjermbildet.

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

Hvis backend-serveren din kjører på en annen vert, for eksempel en annen server med adresse 10.42.1.10, skal vert-parameteren peke til denne IP-adressen.

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

Lagre filen og lukk den.

13. Etter å ha gjort alle nødvendige endringer angående Lakk, last inn systemd-administratorkonfigurasjonen på nytt for å gjenspeile de nye endringene i Varnish-tjenestefilen og start også på nytt varnish-tjenesten for å anvende de overordnede endringene.

systemctl daemon-reload
systemctl restart varnish

14. På dette tidspunktet bør Varnish og Apache nå lytte på henholdsvis port 80 og 8080. Du kan bekrefte dette ved å bruke socket statistics-kommandoen.

ss -tpln

Trinn 4: Testing av lakkbuffer og Apache-oppsett

14. For å teste Varnish Cache-HTTPD-oppsettet, åpne en nettleser og naviger ved hjelp av serveren IP eller FQDN som vist i følgende skjermbilde.

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

Sjekk deretter om nettsider blir servert via Farnish Cache som følger. Sjekk HTTP-overskriftene ved å høyreklikke på den viste nettsiden, velg Inspiser for å åpne utviklerverktøyene, klikk deretter på Nettverk-fanen, og last inn på nytt siden. Velg deretter en forespørsel om å se HTTP-overskriftene for å bekrefte dette som vist i følgende skjermbilde.

Alternativt kan du kjøre følgende curl-kommando for å bekrefte den.

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

Nyttige Varnish Cache Utility-programmer

15. La oss avslutte denne veiledningen med å se på noen av de nyttige programmene som Varnish Cache-distribusjonen følger med. De inkluderer verktøy for administrasjon av lakkbuffer, visning av detaljerte loggoppføringer og visning av lakkytelsesstatistikk som beskrevet nedenfor.

varnishadm

Den første er varnishadm som brukes til å administrere en løpende Varnish-forekomst. Den etablerer en kommandolinjegrensesnittforbindelse til varnishd. Det kan påvirke en kjørende forekomst av Varnish ved å starte og stoppe varnishd, endre konfigurasjonsparametere, laste inn VCL på nytt, liste opp backends og mer.

varnishadm
> backend.list

For mer informasjon, les man varnishadm.

lakklogg

Det neste programmet er varnishlog som brukes til å få tilgang til forespørselsspesifikke data (dvs. informasjon om spesifikke klienter og forespørsler). Den gir store mengder informasjon, derfor er det vanligvis nødvendig å filtrere den.

varnishlog

For mer informasjon, les man varnishlog.

lakkstat

Vi har også varnishstat (lakkstatistikk) som brukes for å få tilgang til overordnet statistikk som antall totale forespørsler, antall objekter og mer.

varnishstat

For mer informasjon, les man varnishstat.

lakktopp

Deretter har vi varnishtop som er et verktøy som leser Larnish-loggen og presenterer en kontinuerlig oppdatert liste over de vanligste loggoppføringene.

varnishtop 

For mer informasjon, les man varnishtop.

lakkist

Et annet nyttig verktøy er varnishhist (lakkhistorikk) verktøyet leser lakklogger og presenterer et kontinuerlig oppdatert histogram som viser fordelingen av de siste N forespørslene etter deres behandling.

varnishhist

For mer informasjon, les man fernishhist.

Der har du det! Du har implementert Varnish Cache for å akselerere nettapplikasjonsinnholdet ditt ved hjelp av Apache HTTP Server på CentOS/RHEL 8.

Hvis du har spørsmål om dette emnet eller tanker å dele, bruk tilbakemeldingsskjemaet nedenfor. Sjekk ut Varnish Cache 6.0-dokumentasjonen for mer informasjon.

Hvis du vil aktivere HTTPS på nettstedet ditt, sjekk vår neste artikkel, som viser hvordan du aktiverer SSL/TLS for Varnish Cache ved å bruke Hitch på CentOS/RHEL 8.