Hoe Nginx te Versnellen met Varnish Cache op CentOS 7

Varnish Cache (ook aangeduid als Varnish) is een open-source, high-performance HTTP-accelerator ontworpen om web servers te versnellen. In onze laatste artikelen hebben we uitgelegd hoe Varnish Cache voor Apache te installeren op CentOS 7 en CentOS 8.

In dit artikel zullen we laten zien hoe Varnish Cache te installeren en te gebruiken als een front-end voor de Nginx HTTP-server in CentOS 7. Deze handleiding zou ook moeten werken op RHEL 7.

Vereisten

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

Stap 1: Installeer Nginx Web Server op CentOS 7

1. Begin met het installeren van de Nginx HTTP-server van de standaard CentOS-softwarerepositories met behulp van de YUM-pakketbeheerder als volgt.

# yum install nginx
Install Nginx on CentOS 7

2. Wanneer de installatie is voltooid, start de Nginx-service voor nu en schakel deze in om automatisch te starten bij het opstarten van het systeem.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Start and Enable Nginx at Boot

3. Wijzig nu de systeemfirewallregels om inkomende pakketten op poort 80 toe te staan met de onderstaande commando’s.

# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload
Open Nginx Port on Firewall

Stap 2: Installeer Varnish Cache op CentOS 7

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

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

# 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_varnish5.repo dat de onderstaande opslagplaatsconfiguratie 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 het installeren 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 hoofduitvoerbare bestand geïnstalleerd als /usr/sbin/varnishd en varnish-configuratiebestanden bevinden zich in /etc/varnish/:

  • /etc/varnish/default.vcl – dit is het hoofdvarnish-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 het 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-uitvoerbaar bestand en de geïnstalleerde versie op uw systeem te zien.

$ 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 Nginx om samen te werken met Varnish Cache

11. In deze stap moet u Nginx configureren om samen te werken met Varnish Cache. Standaard luistert Nginx op poort 80, u moet de standaard Nginx-poort wijzigen naar 8080 zodat het achter Varnish-caching draait.

Open het Nginx-configuratiebestand /etc/nginx/nginx.conf en zoek de regel luisteren 80 en verander het naar luisteren 8080 zoals in het serverblok dat hieronder wordt getoond.

# vi /etc/nginx/nginx.conf
Configure Nginx Listening Port

Opmerking: Dit moet worden gedaan in alle serverblokconfiguratiebestanden (meestal gemaakt onder /etc/nginx/conf.d/) voor websites die u via Varnish wilt serveren.

12. Open vervolgens het configuratiebestand van de varnish-service en zoek de parameter ExecStart die de poort specificieert waarop Varnish luistert, en verander de waarde ervan van 6081 naar 80.

# systemctl edit --full  varnish

De regel moet eruit zien zoals getoond.

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

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

# vi /etc/varnish/default.vcl 

Zoek de backend-sectie en definieer het host-IP en poort. Hieronder staat de standaardbackendconfiguratie, stel dit in om te wijzen naar uw werkelijke contentserver.

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

14. Nadat alle noodzakelijke configuraties zijn uitgevoerd, herstart u Nginx HTTPD en Varnish-cache om de bovenstaande wijzigingen door te voeren.

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

Stap 4: Test Varnish-cache op Nginx

15. Ten slotte, test of Varnish-cache is ingeschakeld en werkt met de Nginx-service met behulp van het cURL-commando hieronder om de HTTP-kop te bekijken.

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

U kunt aanvullende informatie vinden in de Varnish Cache Github Repository: https://github.com/varnishcache/varnish-cache

In deze tutorial hebben we uitgelegd hoe u Varnish Cache instelt voor de Nginx HTTP-server op CentOS 7. Gebruik het opmerkingenformulier hieronder om ons eventuele vragen of extra ideeën te sturen.

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