27 Aprile 2023

Varnish o NGINX FastCGI Cache come sistema di cache ?

Scopriamo come l’utilizzo di entrambi nello stesso stack software possa colmare le lacune di entrambi nella versione free.

E’ da tempo che è in corso ormai una guerra di religione su quale sia la migliore cache per webserver. Ci sono i puristi di sempre che consigliano una cache come Varnish Cache ed i novizi che consigliano NGINX FastCGI cache di cui abbiamo parlando in questo articolo, come un metodo più veloce, più semplice e meno complesso di fornire funzionalità di caching HTTP (ed ovviamente HTTPS).

C’è chi come noi sostiene che Varnish abbia maggiori features e consenta grazie al suo Vansh Configuration Language (VLC n.d.r.) di generare setup e configurazioni di caching davvero complesse ed avanzate, e c’è chi sostiene che le stesse cose si possano fare con qualche riga di configurazione in più direttamente in NGINX, senza aggiungere strati di cache come Varnish.

Varnish VCL Example

Normalmente in questi confronti, ognuno porta acqua al suo mulino, a quello che abitualmente utilizza, a quello che sa utilizzare maggiormente o trova più comodo. Ad esempio, vuoi mettere la flessibilità di Varnish Cache e la compatibilità con WordPress grazie a plugin standard di mercato come W3 Total Cache, Proxy Cache Purge, WP Fastest Cache o il commercialissimo WP Rocket ?

WP Rocket Varnish
WP Rocket Varnish

 

WP Fastest Cache Varnish
WP Fastest Cache Varnish Option

Oggettivamente quando parliamo di WordPress e performance siamo i primi a sottolineare quanto sia importante per noi avere uno stack basato su Varnish come full page cache. Tuttavia, abbiamo veramente ragione quando asseriamo che la Cache di NGINX sia un “giocattolo” per sistemisti provetti inesperti? E quando alcuni nostri colleghi ci criticano per l’uso di una cache come Varnish che di fatto potrebbe essere risparmiata utilizzando la Cache di NGINX, criticandoci di aver appesantito uno stack software che potrebbe essere più snello, hanno veramente ragione loro?

Insomma, tra Varnish e NGINX quale cache è migliore ?

Per rispondere a questa domanda bisogna fare necessariamente un passo indietro e prendere distanza dalle proprie convinzioni, cercando un approccio di apertura verso ciò che fino ad oggi abbiamo non usato o usato male ed iniziare a capire i modelli di business di Varnish e NGINX e come dalla comprensione delle loro rispettive limitazioni si possano includere e non escludere a vicenda.

Modelli di business di Varnish e NGINX

Varnish e NGINX sono due popolari server proxy utilizzati per migliorare le prestazioni delle applicazioni web e garantire una migliore esperienza utente. Ciò che rende questi software ancora più interessanti è che entrambi sono sviluppati secondo la filosofia open source, il che significa che sono liberamente disponibili per l’uso e la modifica da parte di chiunque.

Tuttavia, esiste anche una versione commerciale di entrambi i software: NGINX Plus e Varnish Enterprise. Queste versioni sono dotate di caratteristiche avanzate e funzionalità aggiuntive, che non sono disponibili nelle versioni gratuite. Tali funzionalità includono supporto ufficiale da parte dell’azienda, garanzie sulla qualità del software e persino strumenti di analisi delle prestazioni.

Ciò che differenzia maggiormente queste versioni commerciali dalle versioni gratuite è il loro prezzo. Entrambe le versioni commerciali hanno costi di licenza di decine di migliaia di dollari annui. Ciò significa che queste licenze sono rivolte principalmente ad aziende che hanno bisogno di funzionalità avanzate e che sono disposte a pagare per il supporto e le garanzie aggiuntive.

Superare le rispettive limitazioni utilizzando sia NGINX che Varnish

Consapevoli che sia NGINX che Varnish hanno nelle loro versioni free delle limitazioni, possiamo comunque superarli utilizzando entrambi i server proxy in combinazione.

Ad esempio, NGINX può essere utilizzato come servizio di microcaching. In questo modo, NGINX viene utilizzato come primo livello di caching, in cui vengono memorizzati i dati che vengono frequentemente richiesti dagli utenti. Quando una richiesta arriva al server, NGINX controlla la sua cache per vedere se la risposta è già presente. Se lo è, NGINX invia immediatamente la risposta al client senza dover passare alla fase successiva di elaborazione.

NGINX Microcaching

In combinazione con Varnish, NGINX può essere utilizzato come front-end per il server di cache Varnish. In questo scenario, le richieste dei client sono inizialmente gestite da NGINX. Se i dati richiesti non sono presenti nella cache di NGINX, la richiesta viene passata al server Varnish, che ha una cache più grande e più robusta. Varnish ha la capacità di memorizzare grandi quantità di dati in RAM, rendendolo molto più veloce delle classiche cache come Memcached e Redis.

Quando un client richiede un’informazione, NGINX la cerca nella sua cache. Se la risposta è presente, NGINX la invia direttamente al client. In caso contrario, la richiesta viene inoltrata a Varnish, che a sua volta verifica la propria cache per vedere se la risposta è presente. Se la risposta è presente nella cache di Varnish, questa viene restituita al client attraverso NGINX.

Questa combinazione di caching può migliorare significativamente le prestazioni delle applicazioni web. Inoltre, è possibile personalizzare il comportamento della cache utilizzando le opzioni di configurazione offerte da entrambi i server proxy e con alcune accortezze far in modo che il web server non restituisca mai una MISS come risposta, e garantendo dunque tempi di risposta eccellenti inferiori ai 30ms.

 

 

 

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

SOLO UN ATTIMO !

Vorresti vedere come gira il tuo WooCommerce sui nostri sistemi senza dover migrare nulla ? 

Inserisci l'indirizzo del tuo sito WooCommerce e otterrai una dimostrazione navigabile, senza dover fare assolutamente nulla e completamente gratis.

No grazie, i miei clienti preferiscono il sito lento.
Torna in alto