Необходимые модификации для использования лака на Magento CE

magento.stackexchange https://magento.stackexchange.com/questions/486

Вопрос

Я изо всех сил пытаюсь найти какие -либо хорошие примеры того, какие модификации требуются, чтобы дать лаку кэшировать сайт Magento.

В идеале я бы хотел список задач, таких как вещи, чтобы отключить/включить и где их искать. Было бы также хорошо иметь конфигурацию лака, с которой эти изменения предназначены для работы.

Руководство по производительности Magento много говорит о лаке, поэтому я знаю, что это было сделано раньше, однако на самом деле это не объясняет, как заставить его работать.

Это было полезно?

Решение

У них есть официальный модуль здесь. Анкет Он включает в себя все, что вам нужно (конфигурация лака, модуль, ...)

Другие советы

Подходит для вас лак?

Лак не является всеми и конец всего магенто. Замечательно компенсировать загрузку от ботов и оконных шопперцев - но это не должен быть ваш первый порт вызова, чтобы фактически сделать ваш магазин быстрее.

На самом деле, реализация лака должна быть последний Модификация производительности в ваш магазин. Оставьте его только после того, как вы увидите время загрузки страницы, способное доставлять без него (например, время загрузки страниц).

Ваш магазин все еще должен быть быстрым

Поскольку лак по-прежнему требует, по крайней мере, одной страницы нагрузки, чтобы заполнить кэш, это означает, что ваша неэкварная производительность по-прежнему должна быть очень хорошей. Подавляющее большинство уникальных URL -адресов (многослойные навигационные удары, запросы на поиск и т. Д.) Никогда не будут в конечном итоге обслуживаться из лака, если ни один из них не будет:

а) Ваши TTL настолько высоки, что поисковый запрос 4 дня назад все еще действителен сегодня
б) Переход на участке настолько обшиплен, что URL -адреса заполняются за очень короткий промежуток времени

Вы также должны рассмотреть это Не каждый магазин подходит для лака. Анкет Любой сайт, который поощряет пользователей создавать личную сеанс (например, войти в систему, добавить к и т. Д.) В начале своего клиента, будет означать, что лак будет в конечном итоге избыточным.

Например, частные сайты покупок поощряют вход пользователей с набора, однако, при этом это означает, что лак на самом деле никогда не имеет контента, не подлежащего кэш-контенту. Таким образом, ваши показатели попаданий будут радикально низкими, и не будет никакой пользы от использования лака.

Свежий контент или более высокие показатели удара

Varnish Hit Rate
Изображение предоставлено Magestack.com

Эффективное использование лака - это все, что касается баланса между устаревшим контентом и количеством посетителей на вашем сайте.

Если у вас есть занятый сайт - Скорее всего, вы можете сойти с рук с более низкими TTL и при этом иметь высокую скорость попадания лака, а также продолжать иметь низкие TTL - таким образом, более свежее содержание. Таким образом, ваши изменения акций/цены отражаются быстро, и кэш постоянно заправляется от объема шага.

Если у вас есть сайт с низким трафиком - Тогда вам придется пойти на компромисс. Либо увеличьте свои TTL, чтобы обеспечить более высокую скорость попадания-либо иметь современный контент. Вы не можете иметь оба. Да, вы можете постоянно запускать инструмент для ползания/паука - но ресурсы, которые это потребляет, и чистый объем или URL -адрес маленький магазины) означает, что это просто не эффективно. Так как обычно, небольшие магазины больше выигрывают от хороший Расширение FPC и высоко оптимизированная конфигурация сервера.

Но, конечно, я могу использовать лак, даже когда пользователи входят в систему, как насчет кеша на пользователь или ESIS?

Эс

ESI - отличная утилита, чтобы иметь возможность сохранять контент в кэше, и все же иметь возможность иметь динамические блоки на странице. Но для эффективного использования вам необходимо минимизировать количество обратных вызовов к минимуму. Есть маленький старший модуль Вы можете использовать в качестве основы для этого процесса - Просто убедитесь, что вы затягиваете отверстия для безопасности в нем, это очень небезопасно по умолчанию - нет никаких ограничений на то, какие ручки макета вы можете/не можете загрузить

Каждый раз, когда загружается начальная загрузка Magento, он составляет штраф в течение около 200 мс - до того, как он даже загружает коллекцию/отдает блок и т. Д. Поэтому, если у вас более 3 -кратное ESI, вероятно, что вы в итоге получили Меньшее время загрузки страницы с использованием лака+ESI для динамического содержания, чем просто обход лака и передача запроса непосредственно к самому Magento.

Таким образом, чтобы действительно использовать ESI эффективно, вы должны иметь возможность объединить несколько запросов в одном запросе.

Например, страница просмотра категории, в которой перечислены 20 продуктов, необходимо показывать точные уровни запаса. Таким образом, вы используете ESI для каждого блока на странице. Это будут 20 -кратные запросы на акции ESI. В то время как запросы на акции очень легкие, одновременно выполняют 20x из них. Таким образом, вместо этого вы можете обслуживать весь блок/коллекцию из 20 продуктов и просто получить 1x запрос. Но загрузка и рендеринг коллекции, вероятно, является самым медленным элементом на странице, так что вы мало что получили.

Использование ESI эффективно нуждается в правильном спланировании и выполнении, или у вас будет более медленный сайт, чем не использовать лак вообще.

Кэш-на пользователь

Тогда есть альтернатива использования конкретного пользователя кэша. Это плохая идея, если у вас нет сайта с очень низким трафиком. Ваш уровень попаданий будет ужасно низкой - поскольку шансы на посетителя, попавшего на ту же страницу, на которой они уже были, очень низкие. А для каждого клиента эта страница 6 КБ будет занимать все больше и больше места в вашем корне для хранения лака.

Например, если вы выделили 1 ГБ на лак. С типичным сайтом, где пользователи просматривают 8 страниц за посещение, в среднем 6 из этих страниц будут уникальными. Так что это 28 посетителей на 1 МБ хранения. Затем фактор ваших изображений, CSS и JS - эти (к счастью) будут обычным явлением, но, вероятно, все равно будут занимать хорошие 7-800 МБ вашего доступного хранилища. Это оставляет вам 200 МБ хранилища, достаточно кэша для 5600 уникальных посетителей.

Ну, мне все равно, я просто хочу лак

Хорошо, тогда вам нужно будет сделать следующее:

  1. Установите SSL -терминатор, чтобы сесть перед лаком (например, stud/pound/nginx)
  2. Установите лак на сервере
  3. Убедитесь, что вы настраиваете X-Forwarded-For правильно
  4. Установить а Модуль лака в вашем магазине
  5. Настройте ваши VCLS, чтобы исключить сторонние расширения.

Поскольку первые 3 балла находятся за пределами этого ответа, я оставлю это для себя, чтобы справиться. Точка 4 - детская игра и с точкой 5 - продолжить чтение.

Самая важная вещь в реализации лака - это убедиться, что вы никогда Контент кэша, который никогда не должен кэшироваться.

Например.

  • Обратные вызовы платежного шлюза
  • Обзор тележки
  • Клиент мой обзор учетной записи
  • Оформление (и соответствующие вызовы AJAX)

и т.п.

Для основных URL -адресов Magento существует довольно стандартный список URI, который вы можете избежать в лаке:

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

Но вам также необходимо рассмотреть любые пользовательские/сторонние расширения, которые вы также используете, которые имеют пользовательские маршруты, маршрутизаторы и пространства имен. К сожалению, нет простого способа узнать, какие URL -адреса из этих расширений могут и не могут быть кэшированы. Таким образом, вам нужно оценить каждый в каждом конкретном случае.

Как правило, всякий раз, когда мы настраиваем лак, мы начнем с определения соответствующих маршрутов, маршрутизаторов и пространств имен, которые они могут занять, и оттуда. Мы делаем это через 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 

Это не даст вам окончательный список URL -адресов - но почти наверняка даст вам стартер.

Мы не можем подчеркнуть, насколько важно никогда не кэшировать контент, который не должен быть кэширован. Результаты могут быть катастрофическими.

В итоге

Как и в случае с любой другой оптимизацией производительности сервера Magento, реализованная и настроенная правильно может дать преимущества. Но простое падение программного обеспечения без надлежащей настройки его не только сделает ваш магазин не более быстрее, но потенциально медленнее, более небезопасно и менее надежным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top