11 порад для прискорення роботи Drupal

  1. 1. Останні версії
  2. 2. Мережа доставки контенту
  3. 3. Використовуйте кешування
  4. Кешування сторінки
  5. Кешування переглядів
  6. Кешування панелі
  7. Кешування PHP
  8. Кешування браузера
  9. Стиснення Gzip
  10. Видалити рядки запитів із статичних ресурсів {.entry-title}
  11. 4. Оптимізація зображення
  12. 5. Lazy Load Images
  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 має більше плагінів з уразливістю, особливо якщо власник не оновлює їх.
  • Масштабування : Друпал мав масштаб до тисяч сторінок! WordPress спочатку був розроблений як платформа для блогів.
  • Потужний: Drupal розроблений з урахуванням розробників, тому можливості дизайну нескінченні, особливо з його модульною конструкцією.

Ми вирішили перейти на платформу на основі Drupal, оскільки вона є відкритим кодом, має динамічну спільноту розробників і пропонує потужну та гнучку платформу для створення онлайн-спільнот. Мітч Капор, Фонд електронних кордонів

Drupal наразі використовується на багатьох популярних сайтах, таких як:

  • Warner Brothers Records
  • Амхерстський коледж
  • Digett
  • Популярна наука
  • Symantec Connect
  • Експерт
  • Економіст
  • Білий дім
  • І багато іншого!

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

Джерело: Вбудований

А за регіональними даними, Drupal широко поширений у США та західноєвропейських країнах.

Джерело: Вбудований

Drupal за номерами:

За даними Google Trends, діяльність навколо Drupal досить послідовна, можливо, вона демонструє невеликий спад за останні пару років. Тим не менш, цікаво побачити великий спад з Joomla, який ми, ймовірно, можемо припустити, що це в основному за рахунок WordPress.

Чому ви повинні дбати про прискорення Drupal? Тому що швидкість вашого сайту значно впливає на ваш трафік, перетворення, дохід і навіть рейтинг SEO! Ось статистика від a приклад 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 як оновлення зазвичай містять виправлення помилок та покращення продуктивності. Ви завжди хочете, щоб модуль ядра, вкладу та теми було оновлено.

  1. Щоб запустити оновлення, перейдіть до розділу "Звіти" → "Доступні оновлення".
  2. Потім можна натиснути кнопку "Перевірити вручну" для сканування додаткових оновлень.

2. Мережа доставки контенту

Реалізація a Мережа доставки вмісту (CDN) з Drupal є швидким і простим способом миттєво побачити скорочення часу завантаження для вашого сайту. Роблячи це, ви гарантуєте, що ви обслуговуєте свої активи (зображення продукту, JavaScript, CSS) з різних місцевостей по всьому світу, щоб вони швидше доставлялися відвідувачам і зменшували затримки.

KeyCDN має простий 8 крок інтеграція з Drupal в якому ви можете слідувати.

3. Використовуйте кешування

Друпал, на відміну від багатьох інших платформ CMS, фактично має деякі опції кешування, вбудовані в ядро. Це, мабуть, найпростіший спосіб прискорити продуктивність Drupal на вашому сайті. За замовчуванням це вимкнено.

Кешування сторінки

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

Якщо вам цікаво про те, як існує різниця між мінімальним терміном використання кэша та терміном дії кешованих сторінок, досить добре пояснення тут .

Проте, як і будь-яка інша CMS, вбудовані параметри кешування зазвичай не є настільки ефективними. Ось деякі інші параметри кешування, які також можна переглянути.

Ось повний список модулі кешування що роблять Drupal масштаб.

Кешування переглядів

The модуль переглядів це, мабуть, один з найпопулярніших модулів на Drupal. Якщо ви його встановили, ви також можете включити кешування на ньому.

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

Ось деякі інші модулі, які також можна використовувати для кешування переглядів:

Кешування панелі

Іншим популярним модулем, який зазвичай використовують люди, є у Drupal модулів панелей . Насправді можна включити кешування на кожній окремій панелі.

  1. Щоб увімкнути, перейдіть до пункту «Адміністрування» → «Структура» → «Сторінки».
  2. Потім перейдіть до “Варіанти” → “Вміст” → “Кешування” та натисніть “Змінити”.
  3. Виберіть "Простий кеш" і натисніть "Далі".
  4. Потім можна вибрати тривалість часу кешування та натиснути "Зберегти".

Кешування PHP

Альтернативний кеш PHP (APC) відомо, що допомагає збільшити швидкість встановлення Drupal.

Кешування браузера

Ще однією формою кешування, яку можна використовувати, є кешування браузера. Перегляньте наведені нижче фрагменти, які можна додати на сервер, наприклад, увімкнення стиснення Gzip та додавання заголовків терміну дії.

Стиснення Gzip

Gzip стискає веб-сторінки та таблиці стилів на рівні сервера, перш ніж надсилати їх у браузер. Якщо ви працюєте на Apache, ви можете ввімкнути стиснення, додавши наступне до вашого файлу .htaccess.

<IfModule mod_deflate.c> # Стиснути HTML, CSS, JavaScript, текст, XML та шрифти / x-font-opentype AddOutputFilterByType DEFLATE application / x-font-otf ДодатиOutputFilterByType DEFLATE application / x-font-truetype Дод. / 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 текст / plain AddOutputFilterByType DEFLATE text / xml # Видалення помилок браузера (потрібні тільки для дійсно старих браузерів) BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4 \ t 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 any; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types текст / звичайний текст / HTML-текст / css-додаток / x-javascript text / xml-додаток / xml-додаток / xml + rss text / javascript; gzip_disable "MSIE [1-6]. (?!. * SV1)"; gzip_vary on;

Завершувати заголовки повідомляти браузеру, чи вони повинні запитувати файл з сервера або захоплювати його з кешу браузера.

<ifModule mod_expires.c> ExpiresActive На ############################# ## ## Додати за замовчуванням Завершує заголовок ## http://developer.yahoo.com/performance/rules.html#expires <FilesMatch "(ico | pdf | flv | jpg | png | gif | js | css | swf) $ "> ExpiresDefault" access plus 1 year "</FilesMatch> </ifModule>

Видалити рядки запитів із статичних ресурсів {.entry-title}

Також може бути корисним видалити рядки запитів зі статичних ресурсів, оскільки це може викликати проблеми кешування з деякими кешами проксі та CDN. Щоб видалити рядки запитів із назв файлів CSS у Drupal, до файлу template.php можна додати наступний фрагмент коду. Просто не забудьте змінити MYTHEME за допомогою назви теми.

&lt;? php / ** * Реалізує template_process_html (). * / // Видалення рядків запитів із назв файлів CSS (CacheBuster) MYTHEME_process_html (& $ variables) {$ variables ['styles'] = preg_replace ('/ / css' [^ "] + / ','. Css ' , $ variables ['styles'])}}>

На щастя, якщо ви використовуєте KeyCDN, це не потрібно, оскільки ми маємо функцію "Ігнорувати рядок запитів", яку можна ввімкнути в панелі інструментів. Ця функція ігнорує рядки запитів і повідомляє кешу відповісти кешованою відповіддю, навіть якщо рядок запиту відрізняється.

Ознайомтеся з нашим поглибленим повідомленням видалення рядків запитів .

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

Ми говорили про це стиснення зображення без втрат у попередньому повідомленні в середньому 56% ваги сторінки веб-сайту складається з зображень . Таким чином, оптимізація зображень може істотно зменшити час завантаження сторінки і це те, що ми завжди рекомендуємо робити, коли справа доходить до виконання Drupal.

У Drupal 6 і 7 можна змінити ступінь стиснення на JPEG. За замовчуванням у Drupal 7 він встановлений на 75%.

  1. Щоб змінити, перейдіть до "Конфігурація" → "Інструментарій зображень".
  2. Потім можна змінити суму% і натиснути "Зберегти конфігурацію".

Існують також Drupal модулі оптимізації зображень, такі як Оптимізація зображення і ImageMagick .

5. Lazy Load Images

Ледачі завантаження зображень дозволяють значно збільшити час завантаження сторінки, забезпечивши завантаження зображення лише тоді, коли воно відображається у вікні веб-переглядача. Найпопулярніший для цього модуль в даний час є Зображення Lazyloader ”З трохи більше 18000 завантажень.

Ми також рекомендуємо використовувати модуль типу “ Змінити розмір фільтра "Так що ваші зображення зменшуються, коли ви завантажуєте їх, і ви не покладаєтеся на CSS, щоб зменшити їх.

6. 404с

Замість того, щоб використовувати модуль для перевірки 404-х, рекомендується час від часу керувати веб-сайтом через зовнішню службу, наприклад, " Онлайн перевірка непрацюючих посилань Або інструмент, подібний Кричала жаба . Це гарантує, що ви не витрачаєте жодних ресурсів вашого сервера на це завдання.

Також у Drupal є дорогі 404 помилки. На середньому сайті з середнім навантаженням на модуль можна переглядати 60-100 Мб пам'яті, що споживається на сервері, щоб доставити 404. Друпал Fast 404 модуль виправляє це і зазвичай може доставити 404 помилки, використовуючи менше 1 Мб пам'яті.

7. Вимкніть непотрібні модулі

Так само, як і з будь-якою платформою CMS і плагінами, кожен модуль в Drupal приєднаний. Тому рекомендується не запускати більше 50 модулів. Ось деякі модулі, які можна вимкнути, якщо вам не потрібні функціональні можливості вашого сайту.

  • Засоби розробки адміністрації
  • Devel
  • Доступ до вузла Devel
  • Поле UI
  • Правила інтерфейсу користувача
  • Інтерфейс користувача переглядів
  • Фільтр модуля
  • Блог
  • Форум
  • Таксономія
  • Пошук
  • Довідка
  • Ярлик
  • Панель приладів
  • Ведення бази даних
  • Колір
  • Панель інструментів
  • Tracker
  • Статистика (цей модуль записує до вашої бази даних на кожному завантаженні сторінки. Якщо ви використовуєте Google Analytics, вам, напевно, це не потрібно.)
  • Менеджер оновлення (якщо у вас є розробник для міграції середовища немає ніяких причин, вам потрібно оновлення менеджер опитування drupal.org весь час.) \ T

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

  1. Щоб увімкнути, перейдіть до розділу "Конфігурація" → "Розробка" → "Продуктивність".
  2. Увімкніть "Сукупність і стиснення файлів CSS" і "Сукупні файли JavaScript".
  3. Натисніть "Зберегти конфігурацію".

Примітка: Це стосується як зареєстрованих, так і не зареєстрованих користувачів.

Для більш досконалої агрегації CSS і JavaScript ми рекомендуємо перевірити " Розширена агрегація CSS / JS Модуль.

9. Зворотний проксі-сервер

Перед вами можна розмістити ще одну програму, яка буде обслуговувати кешовані копії ваших веб-сторінок. Це називається "зворотним кешуванням проксі" або іноді також відомим як "прискорювач HTTP". Лак використовується для веб-сайтів з високим рівнем трафіку, таких як Вікіпедія, Facebook, Twitter і т.д. Є два популярних модуля Drupal, коли йдеться про використання Varnish.

10. Додаткові налаштування

11. Виберіть швидкий веб-хостинг

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

Резюме

Як ви можете бачити, є багато способів прискорити продуктивність Drupal, ви просто повинні знати, де шукати. Від реалізації CDN до кешування, оптимізації зображень, ледачих завантажень зображень, фіксації 404s, агрегування CSS / JS файлів і вимкнення непотрібних модулів.

Чи є у вас інший спосіб прискорити друпал, який ми пропустили? Ми хотіли б почути про це нижче в коментарях.

Якщо WordPress настільки популярний, багато хто запитує, чому хтось вибирає Drupal через WordPress?
Чому ви повинні дбати про прискорення Drupal?
Lt;?
Чи є у вас інший спосіб прискорити друпал, який ми пропустили?