Sakinisha Cache ya Varnish 5.2 ili Kuongeza Utendaji wa Apache kwenye CentOS 7


Cache ya Varnish (inayojulikana sana kama Varnish), ni chanzo huria, kichapuzi cha HTTP cha wakala wa nyuma kinachokusudiwa kuongeza kasi ya seva za wavuti. Imeundwa kwa ajili ya sehemu za mwisho za API zinazotumiwa kupita kiasi na pia tovuti zinazobadilika zinazotoa maudhui mengi na uzoefu wa trafiki nyingi.

Inasaidia kimsingi kupunguza mzigo wa CPU; inasaidia kusawazisha upakiaji kwenye seva za wavuti na huwezesha kivinjari kupakia tovuti kwa haraka kama matokeo ya kuhifadhi akiba kwenye RAM. Idadi ya makampuni makubwa huitumia ikiwa ni pamoja na Facebook, Twitter, na Wikipedia kwa kutaja tu chache.

  1. CentOS 7 iliyosakinishwa Apache
  2. CentOS 7 yenye anwani tuli ya IP

Katika nakala hii, nitaelezea jinsi ya kusanikisha na kutumia Varnish Cache 6.5 kama mwisho wa seva ya wavuti ya Apache katika CentOS 7 (pia inafanya kazi kwenye RHEL 7).

Hatua ya 1: Sakinisha Apache Web Server kwenye CentOS 7

1. Sakinisha kwanza seva ya Apache HTTP kutoka hazina chaguomsingi za programu ya CentOS kwa kutumia kidhibiti kifurushi cha YUM kama ifuatavyo.

# yum install httpd

2. Mara tu Apache imesakinishwa, ianzishe kwa sasa na uiwezeshe kuanza kiotomatiki kwenye mfumo wa kuwasha.

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

3. Sasisha sheria zinazofuata za mfumo wa ngome ili kuruhusu pakiti zinazoingia kwenye mlango wa 80 kwa kutumia amri zilizo hapa chini.

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

Hatua ya 2: Sakinisha Cache ya Varnish kwenye CentOS 7

4. Sasa kuna vifurushi vya RPM vilivyokusanywa mapema vya toleo la hivi karibuni la Varnish Cache 6 (yaani 6.5 wakati wa kuandika), kwa hivyo unahitaji kuongeza hazina rasmi ya Varnish Cache.

Kabla ya hapo, unahitaji kuwezesha hazina ya EPEL kusakinisha vifurushi kadhaa vya utegemezi kama inavyoonyeshwa.

# yum install -y epel-release

5. Kisha, sakinisha pygpgme, kifurushi cha kushughulikia sahihi za GPG na yum-utils, mkusanyiko wa huduma muhimu zinazopanua vipengele asili vya yum kwa njia mbalimbali.

# yum install pygpgme yum-utils

6. Sasa unda faili inayoitwa /etc/yum.repos.d/varnishcache_varnish65.repo ambayo ina usanidi wa hazina hapa chini.

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

Muhimu: Hakikisha umebadilisha el na 7 katika usanidi ulio hapa chini na usambazaji na toleo lako la Linux:

[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. Sasa endesha amri iliyo hapa chini ili kusasisha akiba ya yum yako ya ndani na usakinishe kifurushi cha kache ya varnish (usisahau kukubali ufunguo wa GPG kwa kuandika y au ndiyo wakati wa kusakinisha kifurushi):

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

8. Baada ya kusakinisha Cache ya Varnish, inayoweza kutekelezeka itasakinishwa kama /usr/sbin/varnishd na faili za usanidi wa varnish ziko ndani /etc/varnish/:

  • /etc/varnish/default.vcl - hili ndilo faili kuu la usanidi wa varnish, limeandikwa kwa kutumia lugha ya usanidi ya vanish (VCL).

9. Sasa anza huduma ya varnish, iwezeshe kuanza kiotomatiki wakati wa kuwasha mfumo, na uhakikishe hali yake ili kuhakikisha kuwa iko na inafanya kazi kama ifuatavyo.

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

10. Unaweza kuthibitisha kuwa usakinishaji wa Varnish ulifanikiwa kwa kuona eneo la Varnish inayoweza kutekelezeka na toleo lililowekwa kwenye mfumo wako.

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

Hatua ya 3: Sanidi Apache kufanya kazi na Cache ya Varnish

11. Sasa sanidi Apache kufanya kazi kwa kushirikiana na Varnish Cache. Kwa chaguo-msingi, Apache inasikiza kwenye mlango wa 80, unahitaji kubadilisha mlango chaguomsingi wa HTTPD hadi 8080 - hii itahakikisha kuwa HTTPD inaendeshwa nyuma ya uakibishaji wa Varnish.

Unaweza kutumia sed amri kubadilisha bandari 80 hadi 8080 kama inavyoonyeshwa.

# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

Kumbuka: Pia, unahitaji kubadilisha mlango kwenye usanidi wako wa seva pangishi kwa kila tovuti ambayo ungependa kutoa kupitia Varnish. Huu hapa ni usanidi wa tovuti yetu ya majaribio (/etc/httpd/conf.d/tecmint.lan.conf).

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

12. Kisha, fungua faili ya usanidi wa mfumo wa varnish na utafute kigezo cha ExecStart ambacho kinabainisha bandari ya Varnish inasikiza, na ubadilishe thamani yake kutoka 6081 hadi 80 kama inavyoonyeshwa kwenye picha ya skrini.

# systemctl edit --full  varnish

Usanidi unapaswa kuonekana kama hii ukimaliza.

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

13. Kisha, sanidi Apache kama seva ya nyuma kwa seva mbadala ya Varnish, katika faili ya usanidi ya /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Pata sehemu ya nyuma, na ueleze IP ya mwenyeji na bandari. Ifuatayo ni usanidi chaguo-msingi wa mandharinyuma, weka hii ili kuelekeza kwenye seva yako halisi ya maudhui.

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

Ikiwa seva yako ya nyuma inafanya kazi kwenye seva tofauti iliyo na anwani 10.42.1.10, basi kigezo cha mwenyeji kinapaswa kuelekeza kwa anwani hii ya IP.

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

14. Baada ya kufanya usanidi wote muhimu, anzisha upya HTTPD na kashe ya Varnish ili kutekeleza mabadiliko yaliyo hapo juu.

# systemctl daemon-reload
# systemctl restart httpd
# systemctl restart varnish

Hatua ya 4: Jaribu Cache ya Varnish kwenye Apache

15. Hatimaye, jaribu, ikiwa Varnish imewezeshwa na kufanya kazi na huduma ya HTTPD kwa kutumia amri ya cURL iliyo hapa chini, ambayo inaweza kutumika kutazama kichwa cha HTTP.

# curl -I http://localhost
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Kwa habari zaidi, angalia Jalada la Github la Varnish Cache: https://github.com/varnishcache/varnish-cache

Katika somo hili, tulieleza jinsi ya kusanidi Varnish Cache 6.5 seva mbadala kwa seva ya Apache HTTP kwenye CentOS 7. Iwapo una maswali yoyote au mawazo ya ziada ya kushiriki, tumia fomu ya maoni iliyo hapa chini kutuandikia.