Вопрос данный в заголовке главы не оставил меня равнодушным, будучи довольно ярым приверженцем CMS Drupal, я решил найти наиболее оптимальный выход и, соответственно ответ на вопрос Как повысить производительность сайта на Drupal. Ответ в кеше. А точнее в кешировании данных для анонимных пользователей. Но поскольку стандартным, включенным в ядро Drupal модулем добиться сколь-нибудь внятного роста быстродействия путем кеширования данных не удалось, взор был брошен на сторонние модули. А именно на удовлетворивший мои ожидания модуль Boost.
Данный модуль создает статическую html-страничку при первом запросе и кеширует ее, после чего уже выводит её из кеша для всех последующих запросов. По расписанию или при изменении страницы пользователями кеш обновляется, так что вероятность увидеть старую закешированную страницу сведёна к минимуму. Работает этот механизм только для анонимных пользователей, для авторизованных страницы создаются по-прежнему динамически, но как правило читателей сайта на порядки больше писателей, потому польза модуля остаётся велика. Для работы требует задействовать "Чистые ссылки" (Управление - Настройка сайта - Чистые ссылки).
Установка модуля Boost
- Включаем "Чистые ссылки"(Clear URL) (Управление - Настройка сайта - Чистые ссылки)
- Распаковываем архив с модулем в каталог модулей (sites/all/modules/)
- Для работы модуля нужно создать рабочую директорию - по умолчанию предполагается cache в корневом каталоге drupal'а.
- Включаем модуль Boost на страничке Управление - Конструкция сайта - Модули
- Настройка модуля - на странице Управление - Производительность - Boost settings. Необходимо проверить правильность путей для рабочих каталогов, выставить минимальное время жизни кеша для файлов (не забудьте, что это время должно быть меньше периода изменения страницы, в противном случае изменения страницы будут отображены с запозданием). После проверки всех настроек можно включить кеширование - кнопка вверху страницы. Остальные параметры можно оставить по умолчанию.
- Переходим на вкладку Boost htaccess rules generation. На этой вкладке вы увидите много строк кода, эти строки для модуля apache rewrite необходимо вставить в файл .htaccess между строками # RewriteBase / и # Rewrite URLs of the form 'x' to the form 'index.php?q=x'. Если файл до этого не модифицировался, то на 109 строку помещаете данный код. Это ВАЖНО, без этого кеширование работать не будет!
- В файле sites/default/settings.php переменной $base_url присваиваем url нашей странички без завершающего слеша. В моём случае - $base_url = 'http://adrianovalexey.com';
- Все. Разлогиниваемся и пробуем просмотреть страницы нашего сайта как анонимный пользователь.
Комментарии
Чем этот метод лучше
Чем этот метод лучше стандартного агрессивного кеширования, которое ускоряет сайт и для зарегистрированных пользователей?
Да ничем!!! Кроме того, чем
Да ничем!!! Кроме того, чем больше модулей, тем быстродействие - меньше! Сейчас, большая часть хостеров предоставляет услуги по оптимизации (сжатию содержимого при передаче) ваших сайтов. А стандартной схемы кеширования - только не использование других, сторонних модулей. Еще можно и в настройка Apache поковыряться!
С включенным агресивным
С включенным агресивным кешированием бывают сложности в работе некоторых модулей. И субъективно у меня встроенные методы не дали заметного прироста в скорости работы сайта.