Magento FPC Cache Warm с группами пользователей, wget, Lesti FPC

Я использую Lesti FPC на сайте Magento с 10 группами клиентов и множеством категорий / продуктов.

Я создал сценарий оболочки, который читает sitemap.xml и каждый URL-адрес wget в одночасье, чтобы создать кеш сайта. Это прекрасно работает для гостей, но когда пользователь из группы клиентов входит в систему, он сам создает кеш (если это первый день).

Кто-нибудь знает, как создать сценарий оболочки, который мог бы имитировать вход в систему и затем трал сайт? Возможно ли, чтобы сценарий оболочки содержал собственную информацию о сеансе / cookie, чтобы оставаться в системе? а если нет, то есть другие идеи?

Большое спасибо

1 ответ

Решение

Итак, благодаря некоторому поиску в Google и большому количеству проб и ошибок, я нашел решение, которым, как я думал, я бы поделился.

Вы можете использовать WGET для хранения информации о сеансе / куки, сохраняя и загружая куки. У Magento есть собственное ограничение, так как вам нужно установить cookie сеанса перед тем, как вы войдете в систему, иначе скрипт будет перенаправлен на страницу "enable-cookies", а не на вход в систему, поэтому вот сценарий;

#!/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

Это основа, поэтому теперь очень легко загрузить все URL-адреса из файла sitemap.xml и создать зарегистрированные версии кэша.

Поддерживает Grafista для сохранения информации о cookie.

Удачного кеширования!

РЕДАКТИРОВАТЬ - ПО ЗАПРОСУ ПОКАЗАТЬ ОРИГИНАЛЬНЫЙ КОД

Вот код для циклического перемещения по карте сайта и загрузки каждой страницы для создания кэша для гостей. Сохраните его как cachewarm.sh и создайте cronjob, чтобы запускать его каждую ночь (не забудьте сначала удалить или закончить кеш страниц)

#!/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 -
Другие вопросы по тегам