Hvernig á að setja upp Varnish Cache fyrir Apache á CentOS/RHEL 8


Varnish Cache er ókeypis opinn uppspretta, nútímalegur og afkastamikill vefforritshraðall. Það er hraðvirkur HTTP umboðsþjónn sem geymir efni til að flýta fyrir frammistöðu vefþjónsins með því að geyma vefefni í minni netþjónsins - í skyndiminni. Það er stillt til að keyra fyrir framan upprunaþjón eins og Apache (HTTPD) vefþjón.

Þegar viðskiptavinur biður um efni, samþykkir Varnish HTTP beiðnina, sendir beiðnina til upprunaþjónsins, vistar hlutina sem skilað er í skyndiminni og svarar beiðni viðskiptavinarins. Næst þegar viðskiptavinurinn biður um sama efni mun Varnish þjóna því úr skyndiminni. Þannig dregur það úr viðbragðstíma og bandbreiddarnotkun nets við samsvarandi beiðnum í framtíðinni.

Varnish virkar einnig sem HTTP beiðni leið, eldveggur vefforrita, álagsjafnvægi og fleira. Það er stillt með því að nota sveigjanlega Varnish Configuration Language (VCL) sem er hægt að stækka með því að nota Varnish Modules (einnig þekkt sem VMODs), styður Edge Side Includes (ESL), Gzip þjöppun og afþjöppun og margt fleira.

Í þessari grein muntu læra hvernig á að setja upp Apache HTTPD vefþjón og Varnish Cache 6 á ferskum CentOS/RHEL 8 netþjóni, þar á meðal að stilla Varnish til að keyra fyrir framan HTTPD netþjón.

  • Netþjónn með CentOS 8 uppsetningu
  • Netþjónn með virka Red Hat áskrift á kerfinu þínu.

Skref 1: Uppsetning Apache vefþjóns á CentOS/RHEL 8

1. Byrjaðu á því að uppfæra alla uppsetta hugbúnaðarpakka á kerfinu á eftirfarandi hátt með því að nota DNF skipunina.

# dnf update

2. Næst skaltu keyra eftirfarandi skipun til að setja upp Apache HTTP vefþjóninn úr AppStream geymslunni.

# dnf install httpd

3. Um leið og uppsetningunni er lokið skaltu ræsa httpd þjónustuna, gera henni kleift að ræsast sjálfkrafa við ræsingu kerfisins og athuga stöðu hennar til að staðfesta að hún sé í gangi, með því að nota systemctl skipunina.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

4. Sjálfgefið er að CentOS/RHEL 8 inniheldur að fullu læstan eldvegg (keyrðu eldvegg-cmd –state til að staðfesta). Þú verður að opna aðgang að HTTP þjónustunni í eldveggnum til að leyfa notendum aðgang að vefsíðum eða forritum sem keyra yfir HTTP, og einnig endurhlaða eldveggstillingarnar til að beita nýju breytingunum.

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

Skref 2: Settu upp Varnish Cache 6.4 á CentOS/RHEL 8

5. Nú þegar Apache vefþjónninn er í gangi geturðu haldið áfram að setja upp Varnish Cache á kerfinu með eftirfarandi skipun.

# dnf module install varnish

6. Eftir vel heppnaða uppsetningu geturðu staðfest hvaða útgáfu af Varnish er uppsett á vélinni þinni.

# varnishd -V

7. Næst er aðal keyrslan sett upp sem /usr/sbin/varnishd. Einnig eru Varnish stillingarskrárnar geymdar undir /etc/varnish möppunni, þar sem:

  • /etc/varnish/default.vcl – er aðal lakkstillingarskráin skrifuð með VCL.
  • /etc/varnish/secret – er leyndarmálsskráin.

8. Ræstu nú lakkþjónustuna, í bili, virkjaðu hana til að ræsast sjálfkrafa við ræsingu kerfisins ef þjónn endurræsir sig og athugaðu stöðu hennar til að tryggja að hún sé í gangi sem hér segir.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish

Skref 3: Stilla Apache til að vinna með Varnish Cache

9. Nú er kominn tími til að stilla Varnish Cache til að keyra fyrir framan Apache þjónustuna. Sjálfgefið er að Apache þjónninn sé stilltur til að hlusta á port 80, þetta er skilgreint í aðalstillingarskránni /etc/httpd/conf/httpd.conf.

Opnaðu það til að breyta með uppáhalds textaritlinum þínum.

# vi /etc/httpd/conf/httpd.conf

Leitaðu að Hlusta færibreytunni. Til að keyra Varnish fyrir framan Apache þjóninn ættirðu að breyta sjálfgefna gáttinni 80 í 8080 (eða hvaða höfn sem er að eigin vali) eins og sýnt er á eftirfarandi skjámynd.

Þessari höfn verður bætt við sem tengi bakendaþjónsins í Varnish stillingarskránni síðar.

Einnig ætti sýndarhýsingarstillingar fyrir hverja vefsíðu/forrit sem þjónar í gegnum Varnish að vera stillt til að hlusta á ofangreinda höfn. Hér er uppsetningin fyrir prófunarsíðuna okkar (/etc/httpd/conf.d/tecmint.lan.conf).

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

Mikilvægt: Til að koma í veg fyrir að sjálfgefna Apache HTTP-prófunarsíðan sé nokkurn tíma notuð skaltu skrifa athugasemd við allar línur í skránni /etc/httpd/conf.d/welcome.conf eða einfaldlega eyða skránni.

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

10. Næst skaltu prófa httpd stillingar setningafræði fyrir einhverjar villur. Ef það er í lagi skaltu endurræsa httpd þjónustuna til að beita nýju breytingunum.

# httpd -t
# systemctl restart httpd

11. Til að dreifa Varnish fyrir framan HTTPD þarftu einfaldlega að stilla það til að hlusta á beiðnir viðskiptavinar í sjálfgefna HTTP-tengi 80 eins og útskýrt er hér að neðan.

Athugaðu að í Varnish Cache 6.0 og nýrri þarftu að stilla port lak þjóninn hlustar á í Varnish þjónustuskránni fyrir systemd. Fyrst skaltu opna það til að breyta.

# systemctl edit --full  varnish

Leitaðu að ExecStart línunni, breyttu síðan gildi -a rofans (sem tilgreinir lakkið hlusta á heimilisfangið og tengið) úr :6081 í :80 eins og sýnt er á eftirfarandi skjámynd.

Mikilvægt er að ef þú tilgreinir ekki heimilisfang mun varnishd hlusta á öll tiltæk IPv4 og IPv6 tengi sem eru virk á þjóninum.

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

Vistaðu breytingarnar í skránni og lokaðu.

12. Nú þarftu að stilla upprunaþjóninn, þekktur í lakkorðafræði sem bakendi. Það er þjónninn sem skilur HTTP, sem Varnish talar við, til að sækja efni - httpd í þessu tilfelli. Það er stillt í aðalstillingarskránni /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Það er sjálfgefinn grunnstillingarhluti sem kallast sjálfgefinn. Þú getur breytt \default í server1 (eða hvaða nafni sem er að eigin vali til að uppfylla umhverfisstaðla þína.) Sjálfgefið er að hýsilbreytan vísar á localhost, að því gefnu að bakendaþjónninn sé í gangi á localhost.

Stilltu síðan gáttina á 8080 (gáttin sem þú skilgreindir í stillingarskrá Apache sýndarhýsingar) eins og sýnt er á skjámyndinni.

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

Ef bakendaþjónninn þinn er í gangi á öðrum hýsil, til dæmis öðrum netþjóni með heimilisfangið 10.42.1.10, þá ætti hýsilbreytan að benda á þessa IP tölu.

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

Vistaðu skrána og lokaðu henni.

13. Eftir að hafa gert allar nauðsynlegar breytingar varðandi Varnish skaltu endurhlaða uppsetningu systemd manager til að endurspegla nýju breytingarnar í Varnish þjónustuskránni og einnig endurræsa Varnish þjónustuna til að beita heildarbreytingunum.

# systemctl daemon-reload
# systemctl restart varnish

14. Á þessum tímapunkti ættu Varnish og Apache nú að vera að hlusta á port 80 og 8080 í sömu röð. Þú getur staðfest þetta með því að nota socket statistics skipunina.

# ss -tpln

Skref 4: Prófaðu Varnish Cache og Apache uppsetningu

14. Til að prófa Varnish Cache-HTTPD uppsetninguna, opnaðu vafra og farðu með því að nota IP-tölu netþjónsins eða FQDN eins og sýnt er á eftirfarandi skjámynd.

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

Athugaðu síðan hvort verið sé að þjóna vefsíðum í gegnum Varnish Cache á eftirfarandi hátt. Athugaðu HTTP hausana með því að hægrismella á vefsíðuna sem birtist, veldu Skoða til að opna þróunarverkfærin, smelltu síðan á Network flipann og endurhlaða síðuna. Veldu síðan beiðni um að skoða HTTP hausana til að staðfesta þetta eins og sýnt er á eftirfarandi skjámynd.

Að öðrum kosti geturðu keyrt eftirfarandi krulla skipun til að staðfesta það.

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

Gagnleg Varnish Cache Utility Programs

15. Ljúkum þessari handbók með því að skoða nokkur af þeim gagnlegu forritum sem Varnish Cache dreifingin fylgir. Þau innihalda tól til að stjórna lakkskyndiminni, sýna ítarlegar annálaskrár og skoða tölfræði um árangur lakks eins og lýst er hér að neðan.

Hið fyrra er varnishadm sem er notað til að gefa hlaupandi Varnish dæmi. Það kemur á stjórnlínuviðmótstengingu við varnishd. Það getur haft áhrif á keyrandi tilvik af Varnish með því að ræsa og stöðva varnishd, breyta stillingarbreytum, endurhlaða VCL, skrá bakenda og fleira.

# varnishadm
> backend.list

Fyrir frekari upplýsingar, lesið man varnishadm.

Næsta forrit er varnishlog sem er notað til að fá aðgang að beiðni-sértæk gögn (þ.e. upplýsingar um tiltekna viðskiptavini og beiðnir). Það veitir mikið magn upplýsinga og því er venjulega nauðsynlegt að sía þær.

# varnishlog

Fyrir frekari upplýsingar, lestu man varnishlog.

Við höfum einnig varnishstat (lakktölfræði) sem er notað til að fá aðgang að heildartölfræði eins og fjölda heildarbeiðna, fjölda hluta og fleira.

# varnishstat

Fyrir frekari upplýsingar, lestu man varnishstat.

Síðan erum við með varnishtop sem er tól sem les Varnish log og sýnir stöðugt uppfærðan lista yfir algengustu logfærslurnar.

# varnishtop 

Nánari upplýsingar er að finna í Man varnishtop.

Annað gagnlegt tól er varnishhist (lakksaga) tólið les lakkskrár og sýnir stöðugt uppfært súlurit sem sýnir dreifingu síðustu N beiðna eftir vinnslu þeirra.

# varnishhist

Fyrir frekari upplýsingar, lestu manninn varnishhist.

Þarna hefurðu það! Þú hefur sett upp Varnish Cache til að flýta fyrir innihaldi vefforrita sem þjónað er með Apache HTTP Server á CentOS/RHEL 8.

Ef þú hefur einhverjar spurningar um þetta efni eða hugsanir til að deila, notaðu athugasemdareyðublaðið hér að neðan. Skoðaðu Varnish Cache 6.0 skjölin fyrir frekari upplýsingar.

Ef þú vilt virkja HTTPS á síðunni þinni skaltu skoða næstu grein okkar, sem sýnir hvernig á að virkja SSL/TLS fyrir Varnish Cache með Hitch á CentOS/RHEL 8.