11 советов для ускорения работы Drupal

  1. 1. Последняя версия
  2. 2. Сеть доставки контента
  3. 3. Используйте кеширование
  4. Кэширование страниц
  5. Кэширование просмотров
  6. Кэширование панели
  7. PHP кеширование
  8. Кэширование браузера
  9. Сжатие Gzip
  10. Удалить строки запроса из статических ресурсов {.entry-title}
  11. 4. Оптимизация изображения
  12. 5. Ленивая загрузка изображений
  13. 6. 404 с
  14. 7. Отключите ненужные модули
  15. 9. Обратный прокси-сервер
  16. 10. Дополнительные настройки
  17. Резюме

Брайан Джексон

Обновлено 29 июня 2016 г.

Обновлено 29 июня 2016 г

Drupal - это CMS с открытым исходным кодом и / или фреймворк, который используется как минимум 2,2% всех сайтов в Интернете. Он поддерживает все типы сайтов, начиная от блогов до корпоративных и государственных сайтов. В этом посте мы обсудим советы о том, как повысить производительность Drupal, чтобы обеспечить постоянную работу вашего веб-сайта и обеспечить удобство работы для ваших посетителей.

Drupal Первоначально был выпущен в 2001 году, за два года до того, как WordPress появился на рынке. Так как WordPress очень популярен, многие спрашивают, почему кто-то выбрал Drupal вместо WordPress? Вот несколько причин:

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

Мы решили использовать платформу на основе Drupal, потому что она имеет открытый исходный код, имеет динамичное сообщество разработчиков и предлагает мощную и гибкую платформу для создания онлайн-сообществ. Митч Капор, Фонд Электронной Границы

В настоящее время Drupal используется на многих популярных сайтах, таких как:

  • Отчеты братьев Уорнер
  • Амхерст колледж
  • Digett
  • Популярная Наука
  • Symantec Connect
  • экзаменатор
  • Экономист
  • Белый дом
  • И многое другое!

Согласно W3Techs, Drupal в настоящее время занимает 5% рынка ставя его на третье место по популярности среди CMS, опередив только Joomla и WordPress. По данным BuiltWith, 9% из 100 000 лучших веб-сайтов используют Drupal.

Источник: BuiltWith

И согласно региональным данным, Drupal широко популярен в Соединенных Штатах и ​​странах Западной Европы.

Источник: BuiltWith

Друпал по номерам:

Согласно Google Trends, активность вокруг Drupal довольно стабильна, возможно, демонстрируя небольшое снижение за последние пару лет. Тем не менее, интересно увидеть большой спад с Joomla, который, вероятно, можно предположить, что это в основном из-за WordPress.

Почему вы должны заботиться о ускорении Drupal? Потому что скорость вашего сайта сильно влияет на ваш трафик, конверсию, доход и даже рейтинг SEO! Вот статистика от тематическое исследование Radware сделал на время загрузки страницы.

  • В Shopzilla увеличился доход на 12% после увеличения среднего времени загрузки страницы с 6 до 1,2 секунды.
  • Google говорит, что они теряют 20% своего трафика за каждые дополнительные 100 миллисекунд, которые требуются для загрузки страницы. Скорость имеет значение. Google также учитывает время загрузки страницы в поисковом рейтинге вашего сайта.
  • Yahoo увеличивает трафик на 9% за каждые 400 мс улучшений.
  • Mozilla получает на 60 миллионов больше загрузок Firefox в год , делая их страницы на 2,2 секунды быстрее.
  • Amazon увеличивал доход на 1% за каждые 100 мс улучшений.

Следуйте приведенным ниже советам о том, как ускорить работу Drupal и обеспечить его быструю работу, чтобы обеспечить постоянных посетителей. Мы используем Drupal 7.41. Обратите внимание, что Drupal 8 выходит на свободу 19 ноября. Несколько изменений включают в себя прекращение поддержки ядра для IE 6,7, & 8 и добавление поддержки PHP7.

1. Последняя версия

Очень важно, чтобы вы всегда последняя версия Drupal поскольку обновления обычно содержат исправления ошибок и улучшения производительности. Вы всегда хотите обновлять ядро, модуль contribs и темы.

  1. Для запуска обновлений перейдите к «Отчеты» → «Доступные обновления».
  2. Затем вы можете нажать «Проверить вручную» для поиска дополнительных обновлений.

2. Сеть доставки контента

Реализация Сеть доставки контента (CDN) с Drupal - это быстрый и простой способ мгновенно увидеть уменьшенное время загрузки вашего сайта. Сделав это, вы обеспечите доставку своих ресурсов (изображений продуктов, JavaScript, CSS) из разных мест по всему миру, чтобы они быстрее доставлялись вашим посетителям и снижали задержки.

KeyCDN имеет простой 8 шаг интеграция с Drupal в котором вы можете следовать.

3. Используйте кеширование

Drupal, в отличие от многих других платформ CMS, на самом деле имеет несколько опций кэширования, встроенных в ядро. Вероятно, это самый простой способ ускорить работу Drupal на вашем сайте. По умолчанию это отключено.

Кэширование страниц

  1. Чтобы включить, перейдите к «Конфигурация» → «Разработка» → «Производительность».
  2. Включите «Кэширование страниц для анонимных пользователей», а также «Кэширование блоков». Затем вы можете выбрать значение времени для минимального времени жизни кэша и истечения срока хранения кэшированных страниц.
  3. Нажмите «Сохранить конфигурацию».

Если вы задаетесь вопросом о разнице между минимальным временем жизни кэша и истечением срока хранения кэшированных страниц, то это довольно неплохо объяснение здесь ,

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

Вот полный список модули кеширования которые делают шкалу Drupal.

Кэширование просмотров

модуль просмотров вероятно, один из самых популярных модулей на Drupal. Если он у вас установлен, вы также можете включить кеширование на нем.

  1. Чтобы включить, перейдите к «Администрирование» → «Структура» → «Представления».
  2. Нажмите «Изменить» в представлении, для которого вы хотите включить кэширование.
  3. Разверните «Дополнительно».
  4. Выберите «По времени» и нажмите «Применить (все показы)».
  5. Выберите желаемое время и нажмите «Применить (все дисплеи)».

Вот некоторые другие модули, которые вы также можете использовать для кэширования представлений:

Кэширование панели

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

  1. Чтобы включить, перейдите к «Администрирование» → «Структура» → «Страницы».
  2. Затем перейдите к «Варианты» → «Содержимое» → «Кэширование» и нажмите «Изменить».
  3. Выберите «Простой кеш» и нажмите «Далее».
  4. Затем вы можете выбрать длительность кеширования и нажать «Сохранить».

PHP кеширование

Альтернативный кеш PHP (APC) очень хорошо помогает увеличить скорость установки Drupal.

Кэширование браузера

Другая форма кэширования, которую вы можете использовать, - это кэширование в браузере. Посмотрите следующие фрагменты, которые вы можете добавить на свой сервер, например включить сжатие Gzip и добавить заголовки expire.

Сжатие Gzip

Gzip сжимает веб-страницы и таблицы стилей на уровне сервера перед отправкой их в браузер. Если вы работаете в Apache, вы можете включить сжатие, добавив следующее в ваш файл .htaccess.

<IfModule mod_deflate.c> # Сжатие HTML, CSS, JavaScript, текста, XML и шрифтов AddOutputFilterByType DEFLATE application / javascript AddOutputFilterByType DEFLATE application / rss + xml AddOutputFilterByType DEFLATE application_DyTyTyTyPyTypeFDTF / х-шрифт OpenType AddOutputFilterByType DEFLATE применение / х-шрифт-OTF приложение AddOutputFilterByType DEFLATE / х-шрифт TrueType приложение AddOutputFilterByType DEFLATE / х-шрифт-TTF AddOutputFilterByType DEFLATE применение / х-Javascript AddOutputFilterByType DEFLATE приложение / XHTML + XML AddOutputFilterByType DEFLATE приложение / XML AddOutputFilterByType DEFLATE шрифт / OpenType AddOutputFilterByType DEFLATE шрифт / OTF AddOutputFilterByType DEFLATE шрифт / TTF AddOutputFilterByType DEFLATE изображение / SVG + XML AddOutputFilterByType DEFLATE изображение / х-значок AddOutputFilterByType DEFLATE текст / CSS AddOutputFilterByType DEFLATE текст / html AddOutputFilterByType DEFLATE текст / JavaScript AddOutputFilterByType DEFLATE text / plain AddOutputFilterByType DEFLATE text / xml # Удалить ошибки браузера (необходимо только для действительно старых браузеров) BrowserMatch ^ Mozilla / 4 gzip-только-текст / html BrowserMatch ^ Mozilla / 4 \ .0 [678] no \ gip bMSIE! no-gzip! gzip-only-text / html Заголовок добавляет Vary User-Agent </ IfModule>

Если вы работаете на Nginx, вы можете включить сжатие, добавив следующее в файл nginx.conf.

GZIP на; gzip_comp_level 2; gzip_http_version 1.0; gzip_proxied любой; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types текст / обычный текст / html текст / приложение css / текст x-javascript / приложение xml / приложение xml / xml + rss text / javascript; gzip_disable "MSIE [1-6]. (?!. * SV1)"; gzip_vary on;

Заголовки Expire сообщают браузеру, должны ли они запрашивать файл с сервера или извлекать его из кэша браузера.

<ifModule mod_expires.c> ExpiresActive On ######################################################## ## ## Добавить заголовок Expires по умолчанию ## http://developer.yahoo.com/performance/rules.html#expires <FilesMatch "\. (Ico | pdf | flv | jpg | jpeg | png | gif | js | css | swf) $ "> ExpiresDefault" доступ плюс 1 год "</ FilesMatch> </ ifModule>

Удалить строки запроса из статических ресурсов {.entry-title}

Также может быть полезно удалить строки запросов из статических ресурсов, так как это может вызвать проблемы с кэшированием некоторых прокси-кешей и CDN. Чтобы удалить строки запроса из имен файлов CSS в Drupal, в ваш файл template.php можно добавить следующий фрагмент кода. Просто не забудьте изменить МИФЕМУ с названием вашей темы.

&lt;? php / ** * Реализует template_process_html (). * / // Удалить строки запроса из имен файлов CSS (CacheBuster) функция MYTHEME_process_html (& $ variable) {$ variable ['styles'] = preg_replace ('/ \. Css \? [^ "] + /', '. Css' , $ variable ['styles']);}?>

К счастью, если вы используете KeyCDN, это не нужно, так как у нас есть функция под названием «Игнорировать строку запроса», которую вы можете включить на панели инструментов. Эта функция игнорирует строки запроса и сообщает кэшу ответить кэшированным ответом, даже если строка запроса отличается.

Читайте наш более подробный пост на удаление строк запроса ,

4. Оптимизация изображения

Мы говорили о сжатие изображений без потерь в предыдущем посте в среднем 56 процентов веса страницы сайта составляли изображения . Поэтому оптимизация изображений может значительно сократить время загрузки страницы, и мы всегда рекомендуем это делать, когда речь идет о производительности Drupal.

В Drupal 6 и 7 вы можете изменить степень сжатия JPEG. По умолчанию в Drupal 7 он установлен на 75%.

  1. Для изменения перейдите к «Конфигурация» → «Набор инструментов изображения».
  2. Затем вы можете изменить% суммы и нажать «Сохранить конфигурацию».

Также доступны модули оптимизации изображений Drupal, такие как Оптимизация изображения а также ImageMagick ,

5. Ленивая загрузка изображений

Ленивая загрузка изображений может значительно увеличить время загрузки страницы, поскольку изображение будет загружаться только тогда, когда оно будет видно в окне браузера. Самым популярным модулем Drupal для этого в настоящее время является Изображение Lazyloader С чуть более 18 000 загрузок.

Мы также рекомендуем использовать модуль типа « Фильтр изменения размера изображения », Так что ваши изображения уменьшаются при загрузке, и вы не полагаетесь на CSS для их уменьшения.

6. 404 с

Вместо того, чтобы использовать модуль для проверки 404, мы рекомендуем периодически запускать ваш сайт через внешнюю службу, такую ​​как « Онлайн проверка неработающей ссылки Или инструмент, подобный Кричащая лягушка , Это гарантирует, что вы не тратите ресурсы сервера на эту задачу.

Также Drupal имеет дорогие 404 ошибки. На среднем сайте со средней загрузкой модуля вы можете посмотреть, как 60-100 МБ памяти используется вашим сервером для доставки 404. Drupal Fast 404 модуль исправляет это и обычно может выдавать 404 ошибки, используя менее 1 МБ памяти.

7. Отключите ненужные модули

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

  • Инструменты разработки администрирования
  • Devel
  • Доступ к узлу разработки
  • Полевой интерфейс
  • Пользовательский интерфейс правил
  • Интерфейс просмотров
  • Модуль Фильтр
  • Блог
  • Форум
  • таксономия
  • Поиск
  • Помогите
  • кратчайший путь
  • Приборная доска
  • Ведение журнала базы данных
  • цвет
  • Панель инструментов
  • Tracker
  • Статистика (этот модуль записывает в вашу базу данных при каждой загрузке страницы. Если вы используете Google Analytics, вам, вероятно, это не нужно.)
  • Диспетчер обновлений (если у вас есть среда миграции с dev на prod, нет никакой причины, по которой вам нужен постоянно обновляемый менеджер обновлений drupal.org.)

Объединяя ваши файлы CSS и JavaScript, вы можете улучшить производительность внешнего интерфейса и время загрузки, поскольку вашему браузеру не нужно извлекать столько файлов, а это уменьшает общее количество запросов HTTP.

  1. Чтобы включить, перейдите к «Конфигурация» → «Разработка» → «Производительность».
  2. Включите «Объединять и сжимать файлы CSS» и «Объединять файлы JavaScript».
  3. Нажмите «Сохранить конфигурацию».

Примечание. Это относится как к зарегистрированным, так и не зарегистрированным пользователям.

Для более сложной агрегации CSS и JavaScript мы рекомендуем проверить Усовершенствованная агрегация CSS / JS Модуль.

9. Обратный прокси-сервер

Можно разместить другое приложение перед вашим, которое будет обслуживать кэшированные копии ваших веб-страниц. Это называется «кэширование обратного прокси-сервера» или иногда также называется «ускоритель HTTP». Varnish используется для веб-сайтов с высоким трафиком, таких как Wikipedia, Facebook, Twitter и т. Д. Существует два популярных модуля Drupal, когда речь идет об использовании Varnish.

10. Дополнительные настройки

11. Выберите Быстрый веб-хостинг

И наконец, что не менее важно, выбор надежного и быстрого веб-хостинга может быть одним из самых важных решений, которые вы примете, пытаясь улучшить производительность Drupal. Мы рекомендуем держаться подальше от дешевого общего хостинга, поскольку они имеют тенденцию переполнять свои серверы, и вы в конечном итоге будете делиться ресурсами между сотнями людей. Мы предлагаем перейти с VPS, как DigitalOcean , Linode , или же Vultr , Причина в том, что вы будете полностью контролировать свои ресурсы. И если вы не так разбираетесь в технологиях или не хотите управлять своими серверами через CLI, ServerPilot является отличной альтернативой панели управления, которая работает с Drupal и провайдерами VPS, упомянутыми выше.

Резюме

Как вы можете видеть, есть много способов ускорить работу Drupal, вам просто нужно знать, где искать. От внедрения CDN до кэширования, оптимизации изображений, отложенной загрузки изображений, исправления 404-х, агрегирования файлов CSS / JS и отключения ненужных модулей.

У вас есть другой способ ускорить Drupal, который мы пропустили? Мы хотели бы услышать об этом ниже в комментариях.

Так как WordPress очень популярен, многие спрашивают, почему кто-то выбрал Drupal вместо WordPress?
Почему вы должны заботиться о ускорении Drupal?
Lt;?
У вас есть другой способ ускорить Drupal, который мы пропустили?