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


Varnish Cache (almindeligvis kendt som Varnish), er en open source, populær reverse-proxy HTTP-accelerator beregnet til at fremskynde webservere. Det er konstrueret til overdrevent anvendte API-slutpunkter og også til dynamiske websteder, der serverer massivt indhold og oplever høj trafik.

Det hjælper dybest set med at mindske CPU-belastningen; understøtter belastningsbalancering på webservere og gør det muligt for en webbrowser at indlæse websteder hurtigt som et resultat af lagring af cachen i RAM. En række store virksomheder bruger det inklusive Facebook, Twitter og Wikipedia for blot at nævne nogle få.

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

I denne artikel vil jeg forklare, hvordan man installerer og bruger Varnish Cache 6.5 som en front-end til en Apache-webserver i CentOS 7 (fungerer også på RHEL 7).

Trin 1: Installer Apache-webserver på CentOS 7

1. Installer først Apache HTTP-server fra standard CentOS-softwarelagre ved hjælp af YUM-pakkehåndteringen som følger.

# yum install httpd

2. Når Apache er installeret, skal du starte den indtil videre og aktivere den til at starte automatisk ved systemstart.

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

3. Næste opdater system firewallregler for at tillade indgående pakker på port 80 ved hjælp af nedenstående kommandoer.

# firewall-cmd --zone=public --permanent --add-service=http
# 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_varnish65.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 Apache til at arbejde med Varnish Cache

11. Konfigurer nu Apache til at arbejde sammen med Varnish Cache. Som standard lytter Apache til port 80, skal du ændre HTTPD-standardporten til 8080 - dette vil sikre, at HTTPD kører bag Varnish-caching.

Du kan bruge kommandoen sed til at ændre port 80 til 8080 som vist.

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

Bemærk: Du skal også ændre porten på din virtuelle værtskonfiguration for hvert websted, du vil betjene via Varnish. Her er konfigurationen til vores testwebsted (/etc/httpd/conf.d/tecmint.lan.conf).

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

12. Åbn derefter lakksystemd-konfigurationsfilen, og find parameteren ExecStart, der angiver porten, som Varnish lytter til, og skift dens værdi fra 6081 til 80 som vist på skærmbilledet.

# systemctl edit --full  varnish

Konfigurationen skal se sådan ud, når den er færdig.

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

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

# 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";
}

Hvis din backend-server kører på en anden server med adresse 10.42.1.10, skal værtparameteren pege på denne IP-adresse.

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

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

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

Trin 4: Test lakcache på Apache

15. Test endelig, om Varnish er aktiveret og arbejder med HTTPD-tjenesten ved hjælp af nedenstående cURL-kommando, som kan bruges til at se HTTP-headeren.

# 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

For mere information, se Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

I denne vejledning forklarede vi, hvordan du opsætter Varnish Cache 6.5 proxy til Apache HTTP-server på CentOS 7. Hvis du har spørgsmål eller yderligere ideer at dele, skal du bruge feedbackformularen nedenfor til at skrive tilbage til os.