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


Varnish Cache (almennt nefnt Varnish) er opinn, öflugur og fljótur öfugur proxy HTTP hraðall með nútíma arkitektúr og sveigjanlegu uppsetningartungumáli. Að vera öfugt umboð þýðir einfaldlega að það er hugbúnaður sem þú getur notað fyrir framan vefþjóninn þinn (sem er upphafsþjónninn eða bakendi) eins og Nginx, til að taka á móti HTTP beiðnum viðskiptavina og framsenda þær til upprunaþjónsins til vinnslu. Og það skilar svarinu frá upprunaþjóninum til viðskiptavina.

Varnish virkar sem milliliður milli Nginx og viðskiptavina en hefur nokkra frammistöðuávinning. Megintilgangur þess er að láta forritin þín hlaðast hraðar með því að vinna sem skyndiminnisvél. Það tekur á móti beiðnum frá viðskiptavinum og sendir þær einu sinni í bakendann til að vista umbeðið efni (geyma skrár og skráarbrot í minni). Þá verða allar framtíðarbeiðnir um nákvæmlega svipað efni birtar úr skyndiminni.

Þetta gerir það að verkum að vefforritin þín hlaðast hraðar og bætir óbeint afköst vefþjónsins þíns vegna þess að Varnish mun þjóna efni úr minni í stað þess að Nginx vinnur skrár af geymsludisknum.

Burtséð frá skyndiminni, hefur Varnish einnig nokkur önnur notkunartilvik, þar á meðal HTTP beiðni leið, og álagsjafnvægi, eldvegg á vefforritum og fleira.

Lakkið er stillt með því að nota mjög teygjanlega innbyggða Varnish Configuration Language (VCL) sem gerir þér kleift að skrifa stefnur um hvernig meðhöndla skal beiðnir sem berast. Þú getur notað það til að smíða sérsniðnar lausnir, reglur og einingar.

Í þessari grein munum við fara í gegnum skrefin til að setja upp Nginx vefþjóninn og Varnish Cache 6 á ferskum CentOS 8 eða RHEL 8 netþjóni. RHEL 8 notendur ættu að ganga úr skugga um að þeir virkja Redhat áskrift.

Til að setja upp, heill LEMP stafla í stað þess að setja upp Nginx vefþjóninn einn, skoðaðu eftirfarandi leiðbeiningar.

  1. Hvernig á að setja upp LEMP Server á CentOS 8
  2. Hvernig á að setja upp LEMP Server á RHEL 8

Skref 1: Settu upp Nginx vefþjón á CentOS/RHEL 8

1. CentOS/RHEL 8 er með nýjustu útgáfunni af Nginx vefþjónahugbúnaði, svo við munum setja hann upp úr sjálfgefna geymslunni með því að nota eftirfarandi dnf skipanir.

# dnf update
# dnf install nginx

2. Þegar Nginx hefur verið sett upp þarftu að ræsa, virkja og staðfesta stöðuna með því að nota eftirfarandi systemctl skipanir.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. Ef þú ert svolítið forvitinn geturðu líka athugað Nginx TCP falsið, sem keyrir sjálfgefið á port 80, með því að nota eftirfarandi ss skipun.

# ss -tpln

4. Ef þú ert að keyra eldvegginn á kerfinu, vertu viss um að uppfæra eldveggsreglurnar til að leyfa beiðnir til vefþjóns.

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

Skref 2: Setja upp Varnish Cache 6 á CentOS/RHEL 8

5. CentOS/RHEL 8 veitir sjálfgefið Varnish Cache DNF einingu sem inniheldur útgáfu 6.0 LTS (Long Term Support).

Til að setja upp eininguna skaltu keyra eftirfarandi skipun.

# dnf module install varnish

6. Þegar uppsetningu einingarinnar er lokið geturðu staðfest útgáfu af Varnish sem er uppsett á kerfinu þínu.

# varnishd -V

7. Eftir að Varnish Cache hefur verið sett upp eru aðal keyrsluskipunin sem sett er upp undir /usr/sbin/varnishd og lakkstillingarskrám staðsett í /etc/varnish/.

Skráin /etc/varnish/default.vcl er aðal lakkstillingarskráin sem er skrifuð með VCL og /etc/varnish/secret er leyndarmálsskráin.

8. Næst skaltu ræsa Varnish þjónustuna, gera henni kleift að ræsast sjálfkrafa við ræsingu kerfisins og staðfesta að hún sé í gangi.

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

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

9. Í þessum hluta munum við sýna hvernig á að stilla Varnish Cache til að keyra fyrir framan Nginx. Sjálfgefið er að Nginx hlustar á höfn 80, venjulega er hver netþjónsblokk (eða sýndargestgjafi) stilltur til að hlusta á þessa höfn.

Skoðaðu til dæmis sjálfgefna nginx netþjónablokk sem er stilltur í aðalstillingarskránni (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Leitaðu að netþjónsblokkarhlutanum eins og sýnt er á eftirfarandi skjámynd.

10. Til að keyra Varnish fyrir framan Nginx ættirðu að breyta sjálfgefna Nginx tenginu úr 80 í 8080 (eða hvaða aðra höfn sem þú velur).

Þetta ætti að gera í öllum framtíðarstillingarskrám fyrir netþjónablokk (venjulega búnar til undir /etc/nginx/conf.d/) fyrir síður eða vefforrit sem þú vilt þjóna í gegnum Varnish.

Til dæmis er netþjónablokkin fyrir prófunarsíðuna okkar tecmint.lan /etc/nginx/conf.d/tecmint.lan.conf og hefur eftirfarandi uppsetningu.

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

Mikilvægt: Mundu að slökkva á sjálfgefna miðlarablokkinni með því að skrifa athugasemdir við stillingarhlutann í /etc/nginx/nginx.conf skránni eins og sýnt er á eftirfarandi skjámynd. Þetta gerir þér kleift að byrja að keyra aðrar vefsíður/forrit á netþjóninum þínum, annars mun Nginx alltaf beina beiðnum til sjálfgefna netþjónsblokkarinnar.

11. Þegar stillingunum er lokið skaltu athuga stillingarskrána fyrir allar villur og endurræsa Nginx þjónustuna til að beita nýlegum breytingum.

# nginx -t
# systemctl restart nginx

12. Næst, til að fá HTTP beiðnir frá viðskiptavinum, þurfum við að stilla Varnish til að keyra á port 80. Ólíkt fyrri útgáfum af Varnish Cache þar sem þessi breyting var gerð í Varnish umhverfiskránni (sem nú er úrelt), í útgáfu 6.0 og hér að ofan.

Við þurfum að gera nauðsynlegar breytingar á Varnish þjónustuskránni. Keyrðu eftirfarandi skipun til að opna viðeigandi þjónustuskrá til að breyta.

# systemctl edit --full  varnish

Finndu eftirfarandi línu og breyttu gildi -a rofans, sem tilgreinir hlustunar heimilisfangið og gáttina. Stilltu tengið á 80 eins og sýnt er á eftirfarandi skjámynd.

Athugaðu 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.

13. Næst þarftu að skilgreina bakendaþjóninn sem Varnish mun heimsækja til að sækja efni frá. Þetta er gert í Varnish aðalstillingarskránni.

# vi /etc/varnish/default.vcl 

Leitaðu að sjálfgefna bakenda stillingarhlutanum og breyttu strengnum \default í server1 (eða hvaða nafni sem þú velur til að tákna upprunaþjóninn þinn). Stilltu síðan gáttina á 8080 (eða Nginx hlustunargáttina sem þú skilgreindir í netþjóninum þínum) .

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

Fyrir þessa handbók erum við að keyra Varnish og Nginx á sama netþjóni. Ef Nginx vefþjónninn þinn er í gangi á öðrum gestgjafa. Til dæmis, annar þjónn með heimilisfangið 10.42.0.247, stilltu síðan .host færibreytu eins og sýnt er.

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

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

14. Næst þarftu að endurhlaða uppsetningu systemd stjórnanda vegna nýlegra breytinga á Varnish þjónustuskránni, endurræstu síðan Varnish þjónustuna til að beita breytingunum sem hér segir.

# systemctl daemon-reload
# systemctl restart varnish

15. Staðfestu nú að Nginx og Varnish séu að hlusta á stilltu TCP innstungunum.

# ss -tpln

Skref 4: Prófaðu uppsetningu Nginx Varnish Cache

16. Næst skaltu ganga úr skugga um að vefsíðurnar séu þjónaðar í gegnum Varnish Cache sem hér segir. Opnaðu vafra og farðu með því að nota IP-tölu netþjónsins eða FDQN eins og sýnt er á eftirfarandi skjámynd.

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

17. Að öðrum kosti skaltu nota krulluskipunina eins og sýnt er. Notaðu IP tölu netþjónsins þíns eða FQDN vefsíðunnar eða notaðu 127.0.0.1 eða localhost ef þú ert að prófa á staðnum.

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

Gagnleg tól til að stjórna lakk skyndiminni

18. Í þessum lokakafla munum við lýsa í stuttu máli nokkrum af þeim gagnlegu tólum sem Varnish Cache fylgir, sem þú getur notað til að stjórna lakki, fá aðgang að minnisskrám og heildartölfræði og fleira.

varnishadm tól til að stjórna hlaupandi Varnish dæmi. Það kemur á CLI tengingu við varnisd. Til dæmis geturðu notað það til að skrá upp stillta bakenda eins og sýnt er á eftirfarandi skjámynd (lesið man varnishadm fyrir frekari upplýsingar).

# varnishadm
varnish> backend.list

Varnishlog tólið veitir aðgang að beiðnisértækum gögnum. Það býður upp á upplýsingar um tiltekna viðskiptavini og beiðnir (lesið man varnishlog fyrir frekari upplýsingar).

# varnishlog

Varnishstat einnig þekkt sem lakktölfræði, sem gefur þér yfirsýn yfir núverandi frammistöðu Varnish með því að veita aðgang að tölfræði í minni eins og skyndiminni og missir, upplýsingar um geymsluna, þræði sem búið er til, eytt hlutum (lesið man varnishstat fyrir frekari upplýsingar) .

# varnishstat 

Varnishtop tól les samnýtt minnisskrár og sýnir stöðugt uppfærðan lista yfir algengustu færslur í annálum (lesið man varnishtop fyrir frekari upplýsingar).

# varnishtop 

A lakkhist (lakksögu) gagnsemi greinir lakkskrárnar og gefur út stöðugt uppfært súlurit sem sýnir dreifingu síðustu n beiðnanna með vinnslu þeirra (lesið man varnishhist fyrir frekari upplýsingar).

# varnishhist

Það er allt og sumt! Í þessari handbók höfum við sýnt hvernig á að setja upp Varnish Cache og keyra það fyrir framan Nginx HTTP netþjóninn til að flýta fyrir afhendingu vefefnis í CentOS/RHEL 8.

Allar hugsanir eða spurningar um þessa handbók er hægt að deila með því að nota athugasemdareyðublaðið hér að neðan. Fyrir frekari upplýsingar, lestu Varnish Cache skjölin.

Helsti gallinn við Varnish Cache er skortur á innfæddum stuðningi við HTTPS. Til að virkja HTTPS á vefsíðunni þinni/forriti þarftu að stilla SSL/TLS stöðvunarumboð til að vinna í tengslum við Varnish Cache til að vernda síðuna þína. Í næstu grein okkar munum við sýna hvernig á að virkja HTTPS fyrir Varnish Cache með Hitch á CentOS/RHEL 8.