CentOS 7-de Apache öndürijiligini ýokarlandyrmak üçin Varnish Cache 5.2 guruň


Lak Keşi (köplenç Larniş diýlip atlandyrylýar), web serwerlerini çaltlaşdyrmak üçin niýetlenen açyk çeşme, meşhur ters proksi HTTP tizlendiriji. Artykmaç ulanylýan API ahyrky nokatlary, şeýle hem köp mazmuna hyzmat edýän we ýokary traffigi başdan geçirýän dinamiki saýtlar üçin döredildi.

Esasan CPU ýüküni azaltmaga kömek edýär; web serwerlerinde ýük balansyny goldaýar we keş keşini RAM-da saklamak netijesinde web brauzerine saýtlary çalt ýüklemäge mümkinçilik berýär. Birnäçe uly kompaniýa ony “Facebook”, “Twitter” we “Wikipedia” ýaly ulanýar, ýöne käbirlerini bellemek üçin.

  1. Apache gurnalan CentOS 7
  2. Statik IP adresi bolan CentOS 7

Bu makalada, CentOS 7-de Apache web serweriniň öň tarapy hökmünde Varnish Cache 6.5-i nädip gurmalydygyny we ulanmalydygyny düşündirerin (RHEL 7-de işleýär).

1-nji ädim: CentOS 7-de Apache web serwerini guruň

1. Ilki bilen YUM paket dolandyryjysyny ulanyp, deslapky CentOS programma ammarlaryndan Apache HTTP serwerini guruň.

# yum install httpd

2. Apache gurlansoň, ony häzirlikçe başlaň we ulgam ýüklemesinde awtomatiki başlamaga mümkinçilik beriň.

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

3. Aşakdaky buýruklary ulanyp, 80-nji portda girýän paketlere rugsat bermek üçin indiki täzeleniş ulgamynyň gorag diwary.

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

2-nji ädim: CentOS 7-de lak keşini guruň

4. Indi “Varnish Cache 6” -yň iň soňky wersiýasy üçin öňünden düzülen RPM paketleri bar (ýagny ýazylanda 6.5), şonuň üçin resmi “Varnish Cache” ammaryny goşmaly.

Ondan öň, görkezilişi ýaly birnäçe garaşlylyk paketini gurmak üçin EPEL ammaryna mümkinçilik bermeli.

# yum install -y epel-release

5. Ondan soň, GPG gollaryny we ýum-utilleri dolandyrmak üçin paket, yumyň ýerli aýratynlyklaryny dürli usullar bilen giňeldýän peýdaly kömekçi toplumy bolan pygpgme guruň.

# yum install pygpgme yum-utils

6. Indi aşakdaky ammar konfigurasiýasyny öz içine alýan /etc/yum.repos.d/varnishcache_varnish65.repo atly bir faýl dörediň.

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

Üns beriň: Aşakdaky konfigurasiýada el we 7 Linux paýlanyş we wersiýa bilen çalşyň:

[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. Indi ýerli ýum keşiňizi täzelemek we lak keş keş paketini gurmak üçin aşakdaky buýrugy işlediň (gurnanyňyzda y ýa-da yes ýazyp GPG düwmesini kabul etmegi ýatdan çykarmaň) paket):

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

8. Lak Keşini guranyňyzdan soň, esasy ýerine ýetirip boljak/usr/sbin/lakishd we lak konfigurasiýa faýllary/etc/lak /:

  • /etc/varnish/default.vcl - bu esasy lak konfigurasiýa faýly, ýitip barýan konfigurasiýa dili (VCL) ulanyp ýazylýar.

9. Indi lak hyzmatyny başlaň, ulgam ýüklenende awtomatiki başlamaga mümkinçilik beriň we aşakdaky ýaly işleýändigini we işleýändigini anyklamak üçin ýagdaýyny barlaň.

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

10. “Varnish” gurnamagynyň üstünlikli ýerine ýetirilendigini we ulgamyňyzda gurnalan “Varnish” -iň ýerleşýän ýerini görüp tassyklap bilersiňiz.

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

3-nji ädim: Apache lak keşi bilen işlemek üçin sazlaň

11. Indi “Apache” -ni “Varnish Cache” bilen bilelikde işlediň. Adaty tertipde Apache 80-nji porty diňleýär, deslapky HTTPD portuny 8080-e üýtgetmeli - bu HTTPD-iň Varnish keş keşbiniň arkasynda işlemegini üpjün eder.

Görkezilişi ýaly 80-den 8080-nji porty üýtgetmek üçin sed buýrugyny ulanyp bilersiňiz.

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

Bellik: Şeýle hem, “Varnish” -iň üsti bilen hyzmat etmek isleýän her web sahypaňyz üçin wirtual host konfigurasiýasyndaky porty üýtgetmeli. Ine, synag sahypamyzyň (/etc/httpd/conf.d/tecmint.lan.conf) konfigurasiýasy.

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

12. Ondan soň, lak systemd konfigurasiýa faýlyny açyň we Varnish portuny diňleýän ExecStart parametrini tapyň we skrinshotda görkezilişi ýaly bahasyny 6081-den 80-e üýtgediň.

# systemctl edit --full  varnish

Konfigurasiýa gutarandan soň şeýle bolmaly.

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

13. Ondan soň, /etc/varnish/default.vcl konfigurasiýa faýlynda Varnish proksi üçin arka serweri hökmünde Apache guruň.

# vi /etc/varnish/default.vcl 

Yzky bölümi tapyň we ýer eýesi IP we porty kesgitläň. Aşakda deslapky arka konfigurasiýasy, muny hakyky mazmun serweriňize görkezmek üçin düzüň.

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

Arka serweriňiz 10.42.1.10 salgysy bolan başga bir serwerde işleýän bolsa, baş parametr bu IP adresi görkezmeli.

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

14. thehli zerur konfigurasiýalary ýerine ýetireniňizden soň, ýokardaky üýtgeşmeleri amala aşyrmak üçin HTTPD we Varnish keşini täzeden açyň.

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

4-nji ädim: Apache-de lak keşini synap görüň

15. Iň soňunda, Varnish açyk bolsa we HTTP sözbaşysyny görmek üçin ulanyp boljak aşakdaky cURL buýrugyny ulanyp, HTTPD hyzmaty bilen işleýändigini barlaň.

# 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

Has giňişleýin maglumat üçin “Varnish Cache Github” ammaryna göz aýlaň: https://github.com/varnishcache/varnish-cache

Bu gollanmada, CentOS 7-de Apache HTTP serweri üçin Varnish Cache 6.5 proksi nädip gurmalydygyny düşündirdik, paýlaşmak üçin haýsydyr bir soragyňyz ýa-da goşmaça pikiriňiz bar bolsa, bize jogap ýazmak üçin aşakdaky seslenme formasyny ulanyň.