I-install ang Varnish Cache 5.2 aron Mapauswag ang Performance sa Apache sa CentOS 7


Ang Varnish Cache (kasagaran nailhan nga Varnish), usa ka bukas nga gigikanan, sikat nga reverse-proxy nga HTTP accelerator nga gituyo alang sa pagpadali sa mga web server. Gidisenyo kini alang sa sobra nga gigamit nga mga endpoint sa API ug alang usab sa dinamikong mga site nga nagserbisyo sa daghang sulud ug nakasinati sa taas nga trapiko.

Kini batakan makatabang sa pagpakunhod sa CPU load; nagsuporta sa pagbalanse sa load sa mga web server ug makapahimo sa usa ka web browser nga dali nga magkarga sa mga site isip resulta sa pagtipig sa cache sa RAM. Daghang dagkong kompanya ang naggamit niini lakip ang Facebook, Twitter, ug Wikipedia aron lang hisgutan apan pipila.

  1. Usa ka CentOS 7 nga na-install ang Apache
  2. Usa ka CentOS 7 nga adunay static nga IP address

Niini nga artikulo, akong ipasabut kung giunsa ang pag-install ug paggamit sa Varnish Cache 6.5 ingon usa ka front-end sa usa ka Apache web server sa CentOS 7 (nagtrabaho usab sa RHEL 7).

Lakang 1: I-install ang Apache Web Server sa CentOS 7

1. Una i-install ang Apache HTTP server gikan sa default CentOS software repository gamit ang YUM package manager ingon sa mosunod.

# yum install httpd

2. Sa higayon nga ma-install ang Apache, sugdi kini sa pagkakaron ug himoa kini nga awtomatikong magsugod sa boot sa system.

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

3. Sunod nga pag-update sa mga lagda sa firewall sa sistema sa pagtugot sa mga pasulod nga packet sa port 80 gamit ang mga sugo sa ubos.

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

Lakang 2: I-install ang Varnish Cache sa CentOS 7

4. Karon adunay mga pre-compiled RPM packages alang sa pinakabag-o nga bersyon sa Varnish Cache 6 (ie 6.5 sa panahon sa pagsulat), busa kinahanglan nimo nga idugang ang opisyal nga Varnish Cache repository.

Sa wala pa kana, kinahanglan nimo nga hatagan ang EPEL repository sa pag-install sa daghang mga dependency packages sama sa gipakita.

# yum install -y epel-release

5. Sunod, i-install ang pygpgme, usa ka pakete alang sa pagdumala sa mga pirma sa GPG ug yum-utils, usa ka koleksyon sa mapuslanon nga mga gamit nga nagpalapad sa lumad nga mga bahin sa yum sa lainlaing mga paagi.

# yum install pygpgme yum-utils

6. Karon paghimo ug file nga ginganlag /etc/yum.repos.d/varnishcache_varnish65.repo nga adunay sulod nga repository configuration sa ubos.

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

Importante: Siguruha nga ilisan ang el ug 7 sa config sa ubos sa imong distribusyon ug bersyon sa 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. Karon padagana ang sugo sa ubos aron i-update ang imong lokal nga yum cache ug i-install ang varnish cache package (ayaw kalimti ang pagdawat sa GPG key pinaagi sa pag-type og y o yes samtang gi-install ang pakete):

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

8. Human ma-install ang Varnish Cache, ang main executable i-install kay /usr/sbin/varnishd ug varnish configuration files nahimutang sa /etc/varnish/:

  • /etc/varnish/default.vcl – kini ang nag-unang varnish configuration file, kini gisulat gamit ang vanish configuration language (VCL).

9. Karon sugdi ang serbisyo sa barnis, pahimoa kini nga awtomatiko nga magsugod sa panahon sa pag-boot sa sistema, ug pamatud-i ang kahimtang niini aron masiguro nga kini naglihok ug nagdagan sama sa mosunod.

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

10. Mahimo nimong kumpirmahon nga ang pag-instalar sa Varnish malampuson pinaagi sa pagtan-aw sa lokasyon sa Varnish executable ug bersyon nga gi-install sa imong sistema.

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

Lakang 3: I-configure ang Apache nga Magtrabaho Uban sa Varnish Cache

11. Karon i-configure ang Apache aron magtrabaho kauban ang Varnish Cache. Sa kasagaran ang Apache naminaw sa port 80, kinahanglan nimo nga usbon ang default HTTPD port ngadto sa 8080 - kini makasiguro nga ang HTTPD modagan sa likod sa Varnish caching.

Mahimo nimong gamiton ang sed command aron usbon ang port 80 ngadto sa 8080 sama sa gipakita.

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

Mubo nga sulat: Usab, kinahanglan nimo nga usbon ang port sa imong virtual host configuration alang sa matag website nga gusto nimo nga serbisyohan pinaagi sa Varnish. Ania ang configuration para sa among test site (/etc/httpd/conf.d/tecmint.lan.conf).

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

12. Sunod, ablihi ang varnish systemd configuration file ug pangitaa ang parameter ExecStart nga nagtino sa port Varnish naminaw sa, ug usba ang bili niini gikan sa 6081 ngadto sa 80 sama sa gipakita sa screenshot.

# systemctl edit --full  varnish

Ang pag-configure kinahanglan nga ingon niini kung nahuman na.

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

13. Sunod, i-set up ang Apache isip backend server para sa Varnish proxy, sa /etc/varnish/default.vcl configuration file.

# vi /etc/varnish/default.vcl 

Pangitaa ang seksyon sa backend, ug ipasabut ang host IP ug pantalan. Sa ubos mao ang default backend configuration, itakda kini aron itudlo ang imong aktuwal nga content server.

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

Kung ang imong backend server nagdagan sa usa ka lahi nga server nga adunay adres nga 10.42.1.10, nan ang host parameter kinahanglan nga magpunting sa kini nga IP address.

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

14. Human sa pagbuhat sa tanan nga gikinahanglan nga mga configuration, restart HTTPD ug Varnish cache sa epekto sa mga kausaban sa ibabaw.

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

Lakang 4: Sulayi ang Varnish Cache sa Apache

15. Katapusan, sulayi, kung ang Varnish gipagana ug nagtrabaho kauban ang serbisyo sa HTTPD gamit ang cURL nga sugo sa ubos, nga magamit sa pagtan-aw sa HTTP header.

# 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

Alang sa dugang nga impormasyon, tan-awa ang Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

Sa kini nga panudlo, among gipasabut kung giunsa ang pag-setup sa Varnish Cache 6.5 proxy alang sa Apache HTTP server sa CentOS 7. Kung adunay ka bisan unsang mga pangutana o dugang nga mga ideya nga ipaambit, gamita ang porma sa feedback sa ubos aron magsulat balik kanamo.