Sådan fremskyndes Nginx med Varnish Cache på CentOS 7


Varnish Cache (også kaldet Varnish) er en open-source, højtydende HTTP-accelerator designet til at fremskynde webservere. I vores sidste artikler har vi forklaret, hvordan du konfigurerer CentOS 8.

I denne artikel viser vi dig, hvordan du installerer og bruger Varnish Cache som en front-end til Nginx HTTP-serveren i CentOS 7. Denne vejledning skal også fungere på RHEL 7.

  1. En CentOS 7 med Apache installeret
  2. En CentOS 7 med en statisk IP-adresse

Trin 1: Installer Nginx Web Server på CentOS 7

1. Start med at installere Nginx HTTP-serveren fra standard CentOS-softwarelagre ved hjælp af YUM-pakkehåndteringen som følger.

# yum install nginx

2. Når installationen er færdig, skal du starte Nginx-tjenesten indtil videre og aktivere den til at starte automatisk ved systemstart.

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

3. Rediger nu system firewallreglerne for at tillade indgående pakker på port 80 ved hjælp af nedenstående kommandoer.

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

Trin 2: Installer Varnish Cache på CentOS 7

4. Nu er der præ-kompilerede RPM-pakker til den nyeste version af Varnish Cache 6 (dvs. 6,5 i skrivende stund), derfor skal du tilføje det officielle Varnish Cache-arkiv.

Før det skal du aktivere EPEL-arkivet for at installere flere afhængighedspakker som vist.

# yum install -y epel-release

5. Installer derefter pygpgme, en pakke til håndtering af GPG-signaturer og yum-utils, en samling nyttige hjælpeprogrammer, der udvider yums oprindelige funktioner på forskellige måder.

# yum install pygpgme yum-utils

6. Opret nu en fil med navnet /etc/yum.repos.d/varnishcache_varnish5.repo, der indeholder arkivkonfigurationen nedenfor.

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

Vigtigt: Sørg for at erstatte el og 7 i konfigurationen nedenfor med din Linux-distribution og version:

[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. Kør nu kommandoen nedenfor for at opdatere din lokale yum-cache og installere lakcache-pakken (glem ikke at acceptere GPG-nøglen ved at skrive y eller ja , mens du installerer pakke):

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

8. Efter installation af Varnish Cache installeres den vigtigste eksekverbare fil som/usr/sbin/lak og konfigurationsfiler for lak findes i/etc/lak /:

  • /etc/varnish/default.vcl - dette er den primære lakkonfigurationsfil, den er skrevet ved hjælp af VCL (Vanish Configuration Language).

9. Start nu lakstjenesten, gør det muligt for den automatisk at starte under systemstart, og kontroller dens status for at sikre, at den kører som følger.

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

10. Du kan bekræfte, at Varnish-installationen blev gennemført ved at se placeringen af Varnish-eksekverbar version og den version, der er installeret på dit system.

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

Trin 3: Konfigurer Nginx til at arbejde med Varnish Cache

11. I dette trin skal du konfigurere Nginx til at arbejde med Varnish Cache. Som standard lytter Nginx til port 80, skal du ændre standard Nginx-porten til 8080, så den kører bag Varnish-caching.

Åbn Nginx-konfigurationsfilen /etc/nginx/nginx.conf, og find linjen lyt 80, og skift den til at lytte 8080 som i serverblokken vist i skærmbilledet nedenfor.

# vi /etc/nginx/nginx.conf

Bemærk: Dette skal gøres i alle serverblokkonfigurationsfiler (normalt oprettet under /etc/nginx/conf.d/) for websteder, som du vil betjene via Varnish.

12. Åbn derefter konfigurationsfilen til lakstjeneste, og find parameteren ExecStart, der angiver porten, som Varnish lytter til, og skift dens værdi fra 6081 til 80.

# systemctl edit --full  varnish

Linjen skal se ud som vist.

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

13. Konfigurer derefter Nginx som en backend-server til Varnish-proxy i /etc/varnish/default.vcl-konfigurationsfilen.

# vi /etc/varnish/default.vcl 

Find backend-sektionen, og definer værtens IP og port. Nedenfor er standard backend-konfigurationen, indstil denne til at pege på din aktuelle indholdsserver.

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

14. Efter at have udført alle de nødvendige konfigurationer, genstart Nginx HTTPD og Varnish cache for at foretage ovenstående ændringer.

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

Trin 4: Test lakcache på Nginx

15. Test endelig, om Varnish-cache er aktiveret, og arbejde med Nginx-tjenesten ved hjælp af kommandoen cURL nedenfor for at se HTTP-overskriften.

# 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

Du kan finde yderligere oplysninger fra Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

I denne vejledning forklarede vi, hvordan du opsætter Varnish Cache til Nginx HTTP-serveren på CentOS 7. Brug kommentarformularen nedenfor til at sende os spørgsmål eller ekstra ideer.