Zoeken op website

Installeer Varnish Cache 5.2 om de Apache-prestaties op CentOS 7 te verbeteren


Varnish Cache (algemeen bekend als Varnish) is een open-source, populaire reverse-proxy HTTP-accelerator bedoeld om webservers te versnellen. Het is ontworpen voor overmatig gebruikte API-eindpunten en ook voor dynamische sites die enorme inhoud aanbieden en veel verkeer ervaren.

Het helpt in feite om de CPU-belasting te verminderen; ondersteunt taakverdeling op webservers en zorgt ervoor dat een webbrowser snel sites kan laden als gevolg van het opslaan van de cache in RAM. Een aantal grote bedrijven gebruiken het, waaronder Facebook, Twitter en Wikipedia, om er maar een paar te noemen.

Vereisten

  1. Een CentOS 7 met Apache geïnstalleerd
  2. Een CentOS 7 met een statisch IP-adres

In dit artikel leg ik uit hoe je Varnish Cache 6.5 installeert en gebruikt als front-end voor een Apache webserver in CentOS 7 ( werkt ook op RHEL 7).

Stap 1: Installeer Apache Web Server op CentOS 7

1. Installeer eerst de Apache HTTP-server vanuit de standaard CentOS-softwarebronnen met behulp van de YUM-pakketbeheerder, als volgt.

yum install httpd

2. Nadat Apache is geïnstalleerd, start u het voorlopig en schakelt u het in om automatisch te starten bij het opstarten van het systeem.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Update vervolgens de firewallregels van het systeem om inkomende pakketten op poort 80 toe te staan met behulp van de onderstaande opdrachten.

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

Stap 2: Installeer Varnish Cache op CentOS 7

4. Er zijn nu vooraf gecompileerde RPM-pakketten voor de nieuwste versie van Varnish Cache 6 (d.w.z. 6.5 op het moment van schrijven), daarom je moet de officiële Varnish Cache repository toevoegen.

Daarvoor moet u de EPEL-repository inschakelen om verschillende afhankelijkheidspakketten te installeren, zoals weergegeven.

yum install -y epel-release

5. Installeer vervolgens pygpgme, een pakket voor het verwerken van GPG-handtekeningen en yum-utils, een verzameling nuttige hulpprogramma's die de eigen functies van yum op verschillende manieren uitbreiden.

yum install pygpgme yum-utils

6. Maak nu een bestand met de naam /etc/yum.repos.d/varnishcache_varnish65.repo dat de onderstaande repositoryconfiguratie bevat.

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

Belangrijk: zorg ervoor dat je el en 7 in de onderstaande configuratie vervangt door je Linux-distributie en -versie:

[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. Voer nu de onderstaande opdracht uit om je lokale yum-cache bij te werken en het lak-cachepakket te installeren (vergeet niet de GPG-sleutel te accepteren door y of yes te typen tijdens het installeren van het pakket):

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

8. Na het installeren van Varnish Cache wordt het belangrijkste uitvoerbare bestand geïnstalleerd als /usr/sbin/varnishd en de lakconfiguratiebestanden bevinden zich in >/etc/vernis/:

  • /etc/varnish/default.vcl – dit is het belangrijkste lakconfiguratiebestand, het is geschreven met behulp van de vanish-configuratietaal (VCL).

9. Start nu de vernisservice, schakel deze in om automatisch te starten tijdens het opstarten van het systeem en controleer de status ervan om er zeker van te zijn dat deze als volgt actief is.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. U kunt bevestigen dat de installatie van Varnish succesvol was door de locatie van het uitvoerbare bestand van Varnish en de geïnstalleerde versie op uw systeem te bekijken.

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

Stap 3: Configureer Apache om met Varnish Cache te werken

11. Configureer nu Apache om samen te werken met Varnish Cache. Standaard luistert Apache op poort 80. U moet de standaard HTTPD-poort wijzigen in 8080 – dit zorgt ervoor dat HTTPD achter Varnish-caching draait.

U kunt de opdracht sed gebruiken om poort 80 te wijzigen in 8080, zoals weergegeven.

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

Opmerking: u moet ook de poort van uw virtuele hostconfiguratie wijzigen voor elke website die u via Varnish wilt bedienen. Hier is de configuratie voor onze testsite (/etc/httpd/conf.d/tecmint.lan.conf).

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

12. Open vervolgens het laksysteemconfiguratiebestand en zoek de parameter ExecStart die specificeert op welke poort Varnish luistert, en verander de waarde van 6081 tot 80, zoals weergegeven in de schermafbeelding.

systemctl edit --full  varnish

De configuratie zou er als volgt uit moeten zien als u klaar bent.

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

13. Stel vervolgens Apache in als een backend-server voor de Varnish-proxy, in het /etc/varnish/default.vcl configuratiebestand.

vi /etc/varnish/default.vcl 

Zoek het gedeelte backend en definieer het host-IP en de poort. Hieronder vindt u de standaard backend-configuratie. Stel deze zo in dat deze verwijst naar uw daadwerkelijke inhoudsserver.

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

Als uw backend-server op een andere server met adres 10.42.1.10 draait, moet de hostparameter naar dit IP-adres verwijzen.

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

14. Nadat u alle benodigde configuraties heeft uitgevoerd, start u de HTTPD- en Varnish-cache opnieuw op om de bovenstaande wijzigingen door te voeren.

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Stap 4: Test Varnish Cache op Apache

15. Test ten slotte of Varnish is ingeschakeld en werkt met de HTTPD-service met behulp van de onderstaande cURL-opdracht, die kan worden gebruikt om de HTTP-header te bekijken.

curl -I http://localhost
Voorbeelduitvoer
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

Ga voor meer informatie naar Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

In deze tutorial hebben we uitgelegd hoe je Varnish Cache 6.5 proxy instelt voor de Apache HTTP-server op CentOS 7. Als je vragen of aanvullende ideeën hebt om te delen, gebruik dan het onderstaande feedbackformulier om contact met ons op te nemen .