Hvernig á að setja upp Varnish Cache 5.2 fyrir Nginx á CentOS 7


Varnish Cache (einnig nefnt Varnish) er opinn, afkastamikill HTTP hraðall sem er hannaður til að flýta fyrir vefþjónum. Í síðustu greinum okkar höfum við útskýrt hvernig á að setja upp CentOS 8.

Í þessari grein munum við sýna þér hvernig á að setja upp og nota Varnish Cache sem framhlið á Nginx HTTP þjóninum í CentOS 7. Þessi handbók ætti einnig að virka á RHEL 7.

  1. CentOS 7 með Apache uppsettu
  2. CentOS 7 með fastri IP tölu

Skref 1: Settu upp Nginx vefþjón á CentOS 7

1. Byrjaðu á því að setja upp Nginx HTTP netþjóninn frá sjálfgefnum CentOS hugbúnaðargeymslum með því að nota YUM pakkastjórann eins og hér segir.

# yum install nginx

2. Þegar uppsetningunni er lokið skaltu ræsa Nginx þjónustuna í bili og gera henni kleift að ræsast sjálfkrafa við ræsingu kerfisins.

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

3. Breyttu nú reglum um eldvegg kerfisins til að leyfa pakka á heimleið á höfn 80 með því að nota skipanirnar hér að neðan.

# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload

Skref 2: Settu upp Varnish Cache á CentOS 7

4. Nú eru til forsamdir RPM pakkar fyrir nýjustu útgáfuna af Varnish Cache 6 (þ.e. 6.5 þegar þetta er skrifað), þess vegna þarftu að bæta við opinberu Varnish Cache geymslunni.

Áður en það gerist þarftu að virkja EPEL geymsluna til að setja upp nokkra ósjálfstæðispakka eins og sýnt er.

# yum install -y epel-release

5. Settu næst upp pygpgme, pakka til að meðhöndla GPG undirskriftir og yum-utils, safn af gagnlegum tólum sem útvíkka innfædda eiginleika yum á ýmsan hátt.

# yum install pygpgme yum-utils

6. Búðu til skrá sem heitir /etc/yum.repos.d/varnishcache_varnish5.repo sem inniheldur geymsluuppsetninguna hér að neðan.

# vi /etc/yum.repos.d/varnishcache_varnish65.repo

Mikilvægt: Gakktu úr skugga um að skipta út el og 7 í stillingunum hér að neðan fyrir Linux dreifingu og útgáfu:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Keyrðu nú skipunina hér að neðan til að uppfæra staðbundna yum skyndiminni og settu upp lakk skyndiminni pakkann (ekki gleyma að samþykkja GPG lykilinn með því að slá inn y eða yes meðan þú setur upp pakki):

# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish 

8. Eftir að Varnish Cache hefur verið sett upp verður aðal keyrslan sett upp sem /usr/sbin/varnishd og lakkstillingarskrár eru staðsettar í /etc/varnish/:

  • /etc/varnish/default.vcl – þetta er aðal lakk stillingarskráin, hún er skrifuð með vanish configuration language (VCL).

9. Ræstu nú lakkþjónustuna, gerðu henni kleift að ræsast sjálfkrafa við ræsingu kerfisins og staðfestu stöðu hennar til að tryggja að hún sé í gangi sem hér segir.

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

10. Þú getur staðfest að uppsetning Varnish hafi heppnast með því að sjá staðsetningu Varnish executable og útgáfu uppsett á kerfinu þínu.

$ which varnishd
$ varnishd -V
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

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

11. Í þessu skrefi þarftu að stilla Nginx til að vinna með Varnish Cache. Sjálfgefið er að Nginx hlustar á tengi 80, þú ættir að breyta sjálfgefna Nginx tenginu í 8080 svo það keyri á bak við Varnish skyndiminni.

Opnaðu Nginx stillingarskrána /etc/nginx/nginx.conf og finndu línuna listen 80 og breyttu henni í að hlusta 8080 eins og í miðlarablokkinni sem sýndur er á skjámyndinni hér að neðan.

# vi /etc/nginx/nginx.conf

Athugið: Þetta ætti að vera gert í öllum stillingarskrám fyrir netþjónablokk (venjulega búnar til undir /etc/nginx/conf.d/) fyrir vefsíður sem þú vilt þjóna í gegnum Varnish.

12. Næst skaltu opna lakkþjónustu stillingarskrána og finna færibreytuna ExecStart sem tilgreinir portið sem Varnish hlustar á og breyta gildi hennar úr 6081 í 80.

# systemctl edit --full  varnish

Línan ætti að líta út eins og sýnt er.

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

13. Næst skaltu setja upp Nginx sem bakendaþjón fyrir Varnish proxy, í /etc/varnish/default.vcl stillingarskránni.

# vi /etc/varnish/default.vcl 

Finndu bakendahlutann og skilgreindu IP og höfn gestgjafans. Hér að neðan er sjálfgefna stuðningur stillingar, stilltu þetta til að benda á raunverulegan innihaldsþjón þinn.

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

14. Eftir að hafa framkvæmt allar nauðsynlegar stillingar skaltu endurræsa Nginx HTTPD og Varnish skyndiminni til að framkvæma ofangreindar breytingar.

# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish

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

15. Að lokum skaltu prófa hvort Varnish skyndiminni er virkt og vinna með Nginx þjónustunni með því að nota cURL skipunina hér að neðan til að skoða HTTP hausinn.

# curl -I http://localhost
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Þú getur fundið frekari upplýsingar frá Varnish Cache Github geymslunni: https://github.com/varnishcache/varnish-cache

Í þessari kennslu, útskýrðum við hvernig á að setja upp Varnish Cache fyrir Nginx HTTP netþjóninn á CentOS 7. Notaðu athugasemdareyðublaðið hér að neðan til að senda okkur allar fyrirspurnir eða auka hugmyndir.