2015-07-02 9 views
5

Sto utilizzando Lesti FPC su un sito Magento con 10 gruppi di clienti e molte categorie/prodotti.Magento FPC Cache Warm con gruppi di utenti, wget, Lesti FPC

Ho creato uno script di shell che legge sitemap.xml e wget ogni url durante la notte per creare la cache del sito. Funziona perfettamente per gli ospiti, ma quando un utente del gruppo di clienti accede, sta costruendo la cache da sé (se è il primo del giorno).

Qualcuno sa come creare uno script di shell in grado di simulare la registrazione e quindi eseguire il trascinamento del sito? È persino possibile che uno script di shell mantenga le proprie informazioni su sessione/cookie per rimanere loggato? e se no, qualche altra idea?

Molte grazie

risposta

2

Quindi grazie a un po 'di usare Google e un sacco di tentativi ed errori, ho trovato una soluzione che ho pensato di condividere.

È possibile utilizzare WGET per conservare le informazioni su sessione/cookie salvando e caricando i cookie. Magento ha la propria restrizione in quanto è necessario stabilire un cookie di sessione prima di effettuare il login o lo script verrà reindirizzato alla pagina "enable-cookies" piuttosto che al login, quindi ecco lo script;

#!/bin/bash 
# Establish a session and nab the cookie     
wget --save-cookies cookies.txt \ 
http://www.yourmagentourl.co.uk/ 

# Post your user credentials to login and update the cookie 
    wget --save-cookies cookies.txt \ 
    --load-cookies cookies.txt \ 
    --post-data 'login[username]=USERNAME&login[password]=PASSWORD' \ 
    http://www.yourmagentourl.co.uk/customer/account/loginPost/ 


# Load the cookie for each page you want to WGET to maintain the session 
wget --load-cookies cookies.txt \ 
-p http://www.yourmagentourl.co.uk/some-category.html 

Questa è la base, in modo molto facile da caricare ora tutti gli URL da un sitemap.xml e crea il login versioni della cache.

Puntelli a Grafista per un manzo sul salvataggio di informazioni sui cookie.

Felice caching!

EDIT - come da richiesta per visualizzare il codice ORIGINALE

Ecco il codice per scorrere la mappa del sito e caricare ogni pagina per costruire la cache per gli ospiti. Salva questo come cachewarm.sh e creare un cronjob per eseguirlo ogni notte (non dimenticate di eliminare o alterarsi tua pagecache prima)

#!/bin/bash 
# Pixie Media https://www.pixiemedia.co.uk 
# Use the sitemap and reload the Page Cache by accessing each page once 
# 

wget --quiet http://YOUR-URL.co.uk/sitemap.xml --output-document - | egrep -o "http://YOUR-URL.co.uk/[^<]+" | wget -q --delete-after -i - 
+0

Potrebbe condividere lo script per il quale il scansione di pagine per gli ospiti? –

+1

sicuro - ha aggiornato per voi – PixieMedia

+1

grazie PixieMedia. Ho trovato una sceneggiatura potente di Sonassi. https://www.sonassi.com/knowledge-base/simple-magento-performanceload-testing-with-mage-perftest/ –

Problemi correlati