Как ускорить работу сайта на Drupal 7 с модулем Boost

Ускорьте свой сайт с Drupal 7! Настройте Boost для статичного кеширования страниц.

22.05.2013
7 комментариев
2 мин.

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

Итак, ставим модуль Boost и включаем его.

drush dl boost && drush en boost Первым делом, нам необходимо выключить стандартное кэширование друпала, иначе boost работать не будет. Для этого заходим в «Администрирование → Конфигурация → Разработка» и отключаем все в разделе «Кэширование». В разделе «Оптимизация пропускной способности» все галочки лучше оставить включенными или включить, если еще не включили.

После того как отключили стандартное кэширование на всякий случай очистите кэш.

drush cc all Затем заходим в настройки Boost'а (admin/config/system/boos) и в разделе «Text/HTML Settings» указываем необходимое время жизни кэша. Можно оставить по умолчанию. Я же поставил себе максимальное в 1 день, а минимальное оставил в 0 сек.

На сколько я понял из handbook'а модуля, суть такая. Максимальное время жизни, это время, через которое кэш принудительно сбросится. Минимальное же время работает немного иначе. Объясню как я понял. Допустим мы имеем закэшированную страницу с записью в блог, кто-то публикует в него комментарий, происходит запрос к друпалу, и в случае если стоит минимальное время жизни 0 сек, то обновление произойдет сразу, а если же, например, 5 минут, то кэш сброситься только если после кеширования страницы прошло 5 минут. Чем активнее появляется материал и комментарии на сайте, тем меньше надо ставить данное значение.

Дальше переходим на вкладку «.htaccess», там есть еще одна вкладка «.htaccess Generation». В ней есть код, который обязателен для работы модуля. Он генирируется на основе настроек. Поэтому, если вы что-то меняли (во вкладке htaccess), то и не забудьте поменять данные значения, иначе изменения не вступят в силу. В нашем случае просто копируем все что там написано и открываем файл .htaccess, который находится в корне сайта. И вставляем (!важно) его после между строк:

    # If your site is running in a VirtualDocumentRoot at http://example.com/,
    # uncomment the following line:
    # RewriteBase /
    ТУТ ТО, ЧТО СКОПИРОВАЛИ
    
    # Pass all requests not referring directly to files in the filesystem to
    # index.php. Clean URLs are handled in drupal_environment_initialize().

Сохраняем файл и смотрим результат. Теперь при заходе на страницу, будет генерироваться html-файл кэша с данной страницей. В директории сайта должна появиться папка chache/normal в которой будут хранится кэшированные страницы. Если все сделали верно, они там начнут появлятся при первом заходе на страницу.

Данный гайд я рассказываю по данному блогу и привожу примеры именно на нем. До установки и настройки модуля, со стандартным кэшированием друпала, скорость загрузки сайта по данным firebag колебалась от 3 до 4 секунд, после установки от 1 до 2 секунд. Неплохо, не так ли, почти в 2 раза ускорить сайт за пару минут не особо напрягаясь. А ведь данный модуль можно настроить еще тоньше и, возможно, это даст еще больше производительности.

P.s

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

Boost
Drupal
Drupal 7
Оптимизация
Производительность

Комментарии

Stan   чт, 23/05/2013 - 10:45

В Drupal 6, при включенном Boost, переставали работать javascripts в модулях типа Flag. А как дела на семёрке?

Niklan   чт, 23/05/2013 - 11:15

Не проверял. Rate работает, но результат видно только когда сбросится кэш. Так что, скорее всего проблема осталась и с другими модулями. Это печально :(

Скорее всего данный модуль больше для статичных сайтов подходит. Типа сайтов для компаний\визиток\каталогов.

Станислав Романов   сб, 31/08/2013 - 20:50

Я для своего проекта ставил Boost, скорость загрузки страницы немного выросла, но сама нагрузка с сервера не сильно спала (~ -15%). C 8000 страницы сожрало 400 мб дискового пространства. Учитывая что на Патруле с дисковым пространством туго пришлось отказаться.

WebMera   ср, 03/06/2015 - 15:21

Отличный модуль. Благодарю за подробное описание, помогла статья.

Денис   чт, 02/04/2020 - 21:32

Niklan, приветствую. Как я понял данный модуль подходит для информационных сайтов со статьями, верно? Можете порекомендовать что-то для интернет-магазинов?

Содержание