Domanda

sto lottando per trovare qualsiasi buoni esempi di quali modifiche di lavoro sono tenuti a consentire Varnish per memorizzare nella cache un sito di Magento.

Idealmente mi piacerebbe un elenco di attività, come ad esempio le cose per abilitare / disabilitare e dove cercare per loro. Sarebbe anche bello avere la configurazione vernice che tali modifiche sono progettate per funzionare con.

La guida prestazioni Magento parla molto di vernice, quindi so che è stato fatto prima, ma in realtà non spiega come farlo funzionare.

È stato utile?

Soluzione

Hanno un modulo ufficiale a destra qui . Esso comprende tutto il necessario (vernice config, modulo, ...)

Altri suggerimenti

Is Vernice giusto per te?

Vernice non è l'essere-tutto e la fine di tutte le prestazioni Magento. La sua grande per compensare il carico dal bots e window-shopper -. Ma non dovrebbe essere il tuo primo porto di scalo per fare effettivamente il vostro negozio più veloce

In realtà, l'implementazione vernice dovrebbe essere il ultima prestazioni modifiche al tuo negozio. Solo farlo cadere in una volta si sta vedendo i tempi di caricamento delle pagine Magento è in grado di erogare senza di essa (es. <600ms tempi di caricamento delle pagine).

Il tuo negozio deve ancora essere veloce

Come per unghie richiede ancora almeno un singolo caricamento della pagina per innescare la cache, significa che le prestazioni non-cache deve ancora essere molto buona. La stragrande maggioranza di URL unici (colpi di navigazione a più livelli, la ricerca query ecc) non sarà mai davvero finire per essere servita dalle unghie a meno che:

a) I tuoi TTL sono così alti, che una query di ricerca da 4 giorni fa è ancora valida oggi
b) Il rumore di passi sul sito è così vasta che gli URL sono popolati in un brevissimo lasso di tempo

È inoltre considerare che non tutti i negozi si presta a Vernice . Qualsiasi sito che incoraggia gli utenti a creare una sessione personale (ad es. Il login, add-to-cart, ecc) nella fase iniziale nel loro percorso del cliente significa che Varnish sarà in definitiva superfluo.

Ad esempio, siti di shopping privati ??incoraggiare login utente dal sul set, però, nel fare questo, significa che Varnish ha mai veramente contenuto non unico che è in grado di cache-. Quindi, il vostro numero sarà drasticamente bassa e non ci sarà alcun beneficio a tutti di usare Varnish.

Contenuti freschi o più alti tassi di successo

Hit Varnish rate
Immagine gentilmente concessa da magestack.com

Utilizzando Varnish è effettivamente tutto di trovare un equilibrio tra il contenuto stantio e la quantità di visitatori del tuo sito.

Se hai un sito occupato - le probabilità sono si può ottenere via con TTL inferiori e hanno ancora un alto Vernice hit rate - e anche continuare ad avere bassi TTL - in tal modo, il contenuto più fresco. Quindi, le modifiche magazzino / prezzo si riflettono in modo rapido e la cache è continuamente innescato dal volume di calpestio.

Se hai un sito a traffico - allora si sta andando ad avere per fare un compromesso. O aumentare le TTL per assicurare un tasso di successo più elevato - o avere contenuti up-to-date. Non si può del tutto avere entrambi. Sì, è possibile eseguire uno strumento di ricerca per indicizzazione / ragno continuamente - ma le risorse che richiederebbe, e volume o di URL che può essere scansionato (di solito nell'ordine delle decine di migliaia di piccoli negozi) significa che il suo semplicemente non efficace. Così di solito, i negozi più piccoli potrebbero beneficiare di più da un bene estensione FPC ed avendo una configurazione di server altamente ottimizzato.

Ma, naturalmente, posso usare Varnish anche quando gli utenti vengono registrati nel, che dire di cache per utente o ESI?

ESI

ESI di sono un'ottima utility per essere in grado di tenere aggiornati i contenuti nella cache, e di essere ancora in grado di avere blocchi dinamici nella pagina. Ma per essere utilizzato in modo efficace, è necessario ridurre al minimo la quantità di callback al minimo indispensabile. C'è un po 'di vantaggio temporale modulo si può usare come base per questo processo - Basta essere sicuri stringere i buchi di sicurezza in essa, la sua molto insicuro di default - non v'è alcuna restrizioni su ciò che il layout maniglie si può / non può caricare

Ogni volta che il bootstrap Magento è caricato, si arriva in un calo delle prestazioni di 200ms in tutto - prima ancora carichi una collezione / rende un blocco ecc Quindi, se hai più di 3x ESI, le probabilità sono che hai finito con più lenti tempi di caricamento della pagina utilizzando Varnish + ESI per il contenuto dinamico, non solo bypassando Varnish e passando ilrichiesta direttamente a Magento sé.

Quindi, per davvero usare ESI di efficace, si deve essere in grado di combinare più richieste in una singola richiesta.

Ad esempio, una pagina di categoria vista messa in vendita di 20 prodotti ha bisogno di mostrare i livelli delle scorte accurate. Quindi si utilizza ESI di per ogni blocco sulla pagina. Sarebbe 20x azionari richieste ESI. Mentre le richieste di magazzino sono molto leggeri, in esecuzione 20x di loro allo stesso tempo avrebbe schiacciato prestazioni. Così, invece, si potrebbe servire l'intero blocco / collezione di 20 prodotti e solo ottenere tale richiesta 1x. Ma il caricamento e il rendering della collezione è probabilmente l'elemento più lento sulla pagina in ogni caso -. In modo che non hai guadagnato molto

Utilizzando ESI proprie esigenze in modo efficace una corretta progettazione ed esecuzione, o avrete un sito più lento di non usare Varnish a tutti.

Cache-per-user

Poi c'è l'alternativa di utilizzare una cache utente specifico. Questa è una cattiva idea a meno che non hai un sito molto basso traffico. Il vostro tasso di successo sarà terribilmente basso - come le probabilità su un visitatore di colpire la stessa pagina hanno già stato a sono molto bassi. E per ogni cliente, la pagina 6Kb sarà occupando sempre più spazio nella vostra silos di immagazzinamento Varnish.

Ad esempio, se hai assegnato 1GB a vernice. Con un tipico sito in cui gli utenti visualizzano 8 pagine per visita, in media 6 di queste pagine sarà unica. Ecco, questo è di 28 visitatori al 1 MB di spazio di archiviazione. Poi fattore nelle vostre immagini, CSS e JS - questi (per fortuna) sarà comune, ma sarà ancora probabilmente occupare una buona 7-800MB dello storage disponibili. Questo ti lascia con 200 MB di spazio di archiviazione rimanente, abbastanza cache per 5.600 visitatori unici.

Beh, non mi interessa, voglio solo vernice

Va bene, allora avrete bisogno di fare quanto segue:

  1. Installare un terminatore SSL a sedersi prima di Vernice (ad es. Perno / pound / nginx)
  2. Installa Vernice sul server
  3. Assicurarsi di configurare correttamente X-Forwarded-For
  4. Varnish modulo sul tuo negozio
  5. Imposta il tuo Varnish VCLs di escludere estensioni 3rd party

Mentre i primi 3 punti sono oltre la portata di questa risposta, lascio che a voi stessi di manico. Il punto 4 è un gioco da ragazzi con e punto 5 -. continua la lettura

La cosa più importante di implementazione Varnish è quello di garantire che si non il contenuto della cache che non dovrebbe mai essere memorizzato nella cache.

Eg.

  • Payment Gateway callback
  • Carrello Introduzione
  • line mio account panoramica
  • Checkout (e rispettive chiamate Ajax)

ecc.

Per il nucleo Magento URL, c'è una lista abbastanza standard di URI che si può scappare in vernice:

admin|checkout|customer|catalog/product_compare|wishlist|paypal

Ma è anche necessario prendere in considerazione eventuali estensioni parti custom / 3rd è in esecuzione anche che hanno percorsi personalizzati, router e gli spazi dei nomi. Purtroppo, non c'è un modo semplice per sapere quali URL da queste estensioni può e non possono essere memorizzate nella cache. Quindi è necessario valutare ogni caso per caso.

Come regola generale, ogni volta che si intenda configurare Varnish, inizieremo individuando i percorsi relativi, router e gli spazi dei nomi che potrebbero occupare e passare da lì. Lo facciamo tramite SSH:

grep -Eiroh "<frontName>.*</frontName>" community | sed "s/<frontName>//gI;s#</frontName>##gI" | sort -u
grep -A10 -ir "<rewrite>" community | grep "<from>"
grep -A5 -ir "<routers>" community 
grep -Eiroh "<frontName>.*</frontName>" local | sed "s/<frontName>//gI;s#</frontName>##gI" | sort -u
grep -A10 -ir "<rewrite>" local | grep "<from>"
grep -A5 -ir "<routers>" local 

Questo non vi darà una lista definitiva di URL -. Ma sarà quasi certamente dare un antipasto

Non posso sottolineare quanto sia importante non il contenuto della cache, che non dovrebbe essere memorizzate nella cache. I risultati potrebbero essere catastrofiche.

In sintesi

Come con qualsiasi altro l'ottimizzazione delle prestazioni del server Magento, realizzato e messo a punto in modo corretto può davvero produrre benefici. Ma semplicemente lasciando cadere nel software senza correttamente la configurazione non è solo andare a rendere il vostro negozio senza più veloce, ma potenzialmente più lento, più insicuri e meno affidabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top