Modalità di tolleranza

La modalità di tolleranza consente a Varnish di mantenere un oggetto nella cache oltre il suo valore TTL. La vernice può quindi fornire il contenuto scaduto (non aggiornato) mentre recupera una nuova versione. Questo migliora il flusso del traffico e riduce i tempi di caricamento. Viene utilizzato nelle seguenti situazioni:

  • Quando il backend Commerce è integro, ma una richiesta richiede più tempo del normale
  • Quando il backend Commerce non è integro.

La subroutine vcl_hit definisce il modo in cui Vernice risponde a una richiesta per gli oggetti che sono stati memorizzati nella cache.

Quando il backend Commerce è integro

Quando i controlli di integrità determinano che il backend di Commerce è integro, Vernice controlla se il tempo rimane nel periodo di tolleranza. Il periodo di tolleranza predefinito è di 300 secondi, ma un commerciante può impostare il valore dall'amministratore come descritto in Configurare Commerce per l'utilizzo di vernice. Se il periodo di tolleranza non è scaduto, Vernice distribuisce il contenuto non aggiornato e aggiorna l'oggetto in modo asincrono dal server Commerce. Se il periodo di tolleranza è scaduto, Vernice fornisce il contenuto non aggiornato e aggiorna in modo sincrono l'oggetto dal backend di Commerce.

Il periodo di tempo massimo per il quale Vernice fornisce un oggetto non aggiornato è la somma del periodo di tolleranza (300 secondi per impostazione predefinita) e del valore TTL (86400 secondi per impostazione predefinita).

Per modificare il periodo di tolleranza predefinito dall'interno del file default.vcl, modificare la riga seguente nella subroutine vcl_hit:

if (obj.ttl + 300s > 0s) {

Quando il backend Commerce non è integro

Se il backend di Commerce non risponde, Vernice fornisce contenuto non aggiornato dalla cache per tre giorni (o come definito in beresp.grace) più il TTL rimanente (che per impostazione predefinita è di un giorno), a meno che il contenuto memorizzato nella cache non venga eliminato manualmente.

Modalità Saint

La modalità Saint esclude i backend non integri per un periodo di tempo configurabile. Di conseguenza, i backend non integri non possono servire il traffico quando si utilizza Vernice come load balancer. La modalità Saint può essere utilizzata con la modalità grace per consentire una gestione complessa di server back-end non integri. Ad esempio, se un server back-end non è integro, i nuovi tentativi possono essere instradati a un altro server. Se tutti gli altri server non sono attivi, distribuire oggetti memorizzati nella cache non aggiornati. Gli host back-end in modalità saint e i periodi di sospensione attività sono definiti nel file default.vcl.

La modalità Saint può essere utilizzata anche quando le istanze di Commerce vengono portate offline singolarmente per eseguire attività di manutenzione e aggiornamento senza influire sulla disponibilità del sito Commerce.

Prerequisiti per la modalità Saint

Designare un computer come installazione principale. Su questo computer installare l'istanza principale di Commerce, del database mySQL e di Vernice.

Su tutti gli altri computer, l'istanza di Commerce deve avere accesso al database mySQL del computer primario. Anche i computer secondari devono avere accesso ai file dell'istanza Commerce primaria.

In alternativa, il controllo delle versioni dei file statici può essere disattivato su tutti i computer. È possibile accedervi dall'amministratore in Archivi > Impostazioni > Configurazione > Avanzate > Sviluppo > Impostazioni file statici > Firma file statici = No.

Infine, tutte le istanze di Commerce devono essere in modalità di produzione. Prima dell'avvio di Vernice, cancellare la cache su ogni istanza. In Amministrazione, passare a Sistema > Strumenti > Gestione cache e fare clic su Svuota cache di Magento. Per cancellare la cache, puoi anche eseguire il seguente comando:

bin/magento cache:flush