Hoe Apache te versnellen met Varnish Cache op CentOS 7

Varnish Cache (algemeen bekend als Varnish), is een open-source, populaire omgekeerde-proxy HTTP-versneller bedoeld voor het versnellen van webservers. Het is ontworpen voor overmatig gebruikte API-eindpunten en ook voor dynamische sites die veel inhoud serveren en veel verkeer ervaren.

Het helpt in feite om de CPU-belasting te verminderen; ondersteunt het balanceren van belastingen op webservers en stelt een webbrowser in staat om sites snel te laden als gevolg van het opslaan van de cache in het RAM-geheugen. Een aantal grote bedrijven maken er gebruik van, waaronder Facebook, Twitter, en Wikipedia om er maar een paar te noemen.

Vereisten

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

In dit artikel zal ik uitleggen hoe je Varnish Cache 6.5 kunt installeren en gebruiken als front-end voor een Apache webserver in CentOS 7 (werkt ook op RHEL 7).

Stap 1: Apache Web Server installeren op CentOS 7

1. Installeer eerst de Apache HTTP-server vanuit de standaard CentOS-softwarerepositories met behulp van de YUM-pakketbeheerder zoals hieronder.

# yum install httpd
Install Apache on CentOS 7

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

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Start and Enable Apache

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

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload
Open Apache Port on Firewall

Stap 2: Installeer Varnish Cache op CentOS 7

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

Voordat je dat doet, moet je de EPEL-repository inschakelen om verschillende afhankelijkheidspakketten te installeren zoals hieronder weergegeven.

# yum install -y epel-release

5. Installeer vervolgens pygpgme, een pakket voor het verwerken van GPG-handtekeningen en yum-utils, een verzameling handige hulpprogramma’s die de 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 het onderstaande commando uit om je lokale yum-cache bij te werken en het varnish-cachepakket te installeren (vergeet niet de GPG-sleutel te accepteren door y of yes in te typen tijdens de installatie van het pakket):

# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish 
Install Varnish Cache in CentOS 7

8. Na het installeren van Varnish Cache, wordt het hoofdprogramma geïnstalleerd als /usr/sbin/varnishd en de Varnish-configuratiebestanden bevinden zich in /etc/varnish/:

  • /etc/varnish/default.vcl – dit is het hoofd Varnish-configuratiebestand, het is geschreven in de Varnish-configuratietaal (VCL).

9. Start nu de Varnish-service, schakel deze in om automatisch te starten tijdens het opstarten van het systeem, en controleer de status ervan om ervoor te zorgen dat deze actief is en draait zoals volgt.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Start Varnish Cache

10. U kunt bevestigen dat de Varnish-installatie succesvol was door de locatie van het Varnish-programma 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 samen te werken met Varnish Cache

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

U kunt het sed-commando gebruiken om poort 80 naar 8080 te wijzigen zoals getoond.

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

Opmerking: U moet ook de poort wijzigen in de configuratie van uw virtuele host 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 varnish systemd configuratiebestand en zoek de parameter ExecStart die aangeeft op welke poort Varnish luistert, en verander de waarde van 6081 naar 80 zoals weergegeven in de screenshot.

# systemctl edit --full  varnish

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

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

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 de backend sectie, en definieer het host IP en poort. Hieronder staat de standaard backend configuratie, pas deze aan naar je werkelijke content server.

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

Als je backend server op een ander server draait met het adres 10.42.1.10, dan moet het host parameter naar dit IP adres wijzen.

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

14. Na het uitvoeren van alle benodigde configuraties, herstart HTTPD en Varnish cache om de bovenstaande veranderingen door te voeren.

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

Stap 4: Test Varnish Cache op Apache

15. Als laatste, test of Varnish is ingeschakeld en werkt met de HTTPD service met behulp van het cURL commando hieronder, dat gebruikt kan worden om de HTTP header te bekijken.

# curl -I http://localhost
Voorbeeld Output
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

Voor meer informatie, bekijk de Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

In deze tutorial hebben we uitgelegd hoe je een Varnish Cache 6.5 proxy kunt instellen voor de Apache HTTP-server op CentOS 7. Als je vragen hebt of extra ideeën wilt delen, gebruik dan het feedbackformulier hieronder om ons terug te schrijven

Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/