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.