Scroll
Быстродействие сайта на Друпал, кеширование
Форумы
Здравствуйте, Иван. Снова обращаюсь к Вам за помощью. У меня получается очень тяжелый сайт на друпал, есть ли какие то методы, что бы улучшить производительность сайта, например с помощью каких либо модулей. Медленно грузятся страницы. Почитала о модуле Boost. Как его праильно и корректно настроить,чтоб не навредить? Может есть еще какие-то методы. Изображения я уменьшаю, флешками почти не пользуюсь. И сколько считается нормой по времени загрузка страницы? Подскажите ,пожалуйста. Спасибо заранее!
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
Здравствуйте, для начала решите для кого вы будете кешировать, для анонимов или для зарегистрированных пользователей. Анонимы обычно на различных новостных и информационных сайтах, зарегистрированные на соц. сетях или сайты с функциями соц. сетей.
Если для анонимов, то проще всего поставить модуль boost и забыть о проблемах с нагрузкой. Boost сгенерирует html странички и нагрузка снизится. Как вариант для анонимов на сервере можно настроить Varnish + Pressflow, хорошо это описано в видео lullabot здесь можно скачать:
http://rutracker.org/forum/viewtopic.php?t=3372107
Теперь, то что касается зарегистрированных пользователей:
Отключаем неизпользуемые модули, стараемся избегать модулей referencies, ralations, fields collection, если это возможно. Запросы с join'
1. Установить на сервер APC или eAccelerator, Xcache, чтобы кешировать php-код. Модуль для друпала так и называется APC, модуль позволяет кешировать данные о сайте и загрузке в оперативной памяти с помощью APC. Понятно о чем это я будет если почитать readme к модулю Memcache.
2. Установить на сервер Memcache и установить модуль memcache api на сайт.
3. Боремся с модулем Views если он есть, в нем тоже включаем кеширование. Можно поставить по времени для всяких блоков новостей и статей, например на час хранение кеша. Если делать чтобы сразу кеш сбрасывался когда новая новость появляется нужно поставить модуль Cache actions
http://drupal.org/project/cache_actions
Нужно добавить Rule обновить кеш view на создание, редактирование, удаление ноды нужного нам типа материала.
4. Боремся с кешированием блока. Отключаем модуль fields permission если он есть. Потому что (или content permissions не помню точно) он блокирует возмоность кешировать блоки, а это плохо.
5. Отключаем модуль php filter и выносим все блоки с php кодом в отдельный модуль. Да и в целом все блоки кастомные выносим в модуль.
6. Если seo не сильно нужно, то используем ajax для загрузки блоков. Можно использовать модуль ajaxify block или подобный для загрузки блоков и регионов через ajax.
7. Ужимаем все наши css, javascript. Css Advanced CSS/JS Aggregation
http://drupal.org/project/advagg
Css у меня сжимался нормально, а вот js выдавал ошибку.
8. Теперь нужно разбираться с блоками которые индивидуальные для каждого пользователя.
http://drupal.org/project/views_puc
http://drupal.org/project/authcache - для 6ки
http://drupal.org/project/easy_authcache - для 6ки, но не пробовал его
На семерку еще не сталкивался с модулями для пользовательского кеширования, хотя точно помню что на последних camp'ах рассказывалось что-то подобное. Модуль назывался то ли easy cache, то ли это и блы easy_authcache. Нужно смотреть последний кемп в Москве или Киеве.
Огромное спасибо,Иван, буду пробовать. Зарегистрированных на сайте не много, в основном это пользователи с ролью менеджера-владельцы страничек, они редко обновляют свой контент, в основном делаю за них это я. А анонимных пользователей больше, потому настроила Boost. С Varnish + Pressflow буду разбираться, с зарегистрированными пользователями думаю тоже скоро надо будет, когда их активность на сайте будет существенной, еще раз спасибо за советы!
привет