11 wskazówek, aby przyspieszyć działanie Drupala

  1. 1. Najnowsza wersja
  2. 2. Sieć dostarczania treści
  3. 3. Wykorzystaj buforowanie
  4. Buforowanie strony
  5. Buforowanie widoków
  6. Buforowanie panelu
  7. Buforowanie PHP
  8. Buforowanie przeglądarki
  9. Kompresja Gzip
  10. Usuń ciągi zapytań z zasobów statycznych {.entry-title}
  11. 4. Optymalizacja obrazu
  12. 5. Leniwe ładowanie obrazów
  13. 6. 404s
  14. 7. Wyłącz niepotrzebne moduły
  15. 9. Odwróć serwer proxy
  16. 10. Dodatkowe ulepszenia
  17. streszczenie

Brian Jackson

Zaktualizowano 29 czerwca 2016 r

Zaktualizowano 29 czerwca 2016 r

Drupal to CMS typu open source i / lub framework, którego używa przynajmniej 2,2% wszystkich stron internetowych w Internecie. Obsługuje wszystkie typy stron internetowych, od blogów po strony korporacyjne i rządowe. W tym poście omówimy wskazówki, jak przyspieszyć działanie Drupala, aby strona działała szybko, zapewniając użytkownikom dobre wrażenia.

Drupal został pierwotnie wydany w 2001 roku, dwa lata przed pojawieniem się WordPressa na rynku. Ponieważ WordPress jest tak popularny, wiele osób pyta, dlaczego ktoś wybrałby Drupala w WordPressie? Oto kilka powodów:

  • Bezpieczeństwo: Drupal ma zabezpieczenia na poziomie przedsiębiorstwa i zapewnia szczegółowe raporty bezpieczeństwa. WordPress ma zwykle więcej wtyczek z lukami, zwłaszcza jeśli właściciel ich nie aktualizuje.
  • Skalowanie : Drupal miał być skalowany do tysięcy stron! WordPress został pierwotnie zaprojektowany jako platforma blogowa.
  • Potężny: Drupal został zaprojektowany z myślą o programistach i dlatego możliwości projektowania są nieograniczone, zwłaszcza dzięki modułowej konstrukcji.

Zdecydowaliśmy się na platformę opartą na Drupalu, ponieważ jest to oprogramowanie open source, ma dynamiczną społeczność programistów i oferuje potężną i elastyczną platformę do budowania społeczności internetowych. Mitch Kapor, Electronic Frontier Foundation

Drupal jest obecnie używany w wielu popularnych witrynach, takich jak:

  • Warner Brothers Records
  • Amherst College
  • Digett
  • Popularna nauka
  • Symantec Connect
  • Egzaminator
  • Ekonomista
  • Biały Dom
  • I wiele więcej!

Według W3Techs, Drupal posiada obecnie 5% udziału w rynku , stawiając to jako trzeci najpopularniejszy CMS, z wyprzedzeniem tylko Joomla i WordPress. Według BuiltWith, 9% z 100 000 najlepszych stron korzysta z Drupala.

Źródło: BuiltWith

Według danych regionalnych Drupal jest znacznie bardziej popularny w Stanach Zjednoczonych i krajach Europy Zachodniej.

Źródło: BuiltWith

Drupal według liczb:

Według Google Trends aktywność wokół Drupala jest dość spójna, może wykazywać niewielki spadek w ciągu ostatnich kilku lat. Interesujące jest jednak obserwowanie dużego spadku w Joomla, który prawdopodobnie można założyć, że wynika to głównie z WordPress.

Dlaczego miałbyś dbać o przyspieszenie Drupala? Ponieważ szybkość Twojej witryny ma duży wpływ na ruch, konwersje, przychody, a nawet rankingi SEO! Oto statystyki z a studium przypadku Radware robił to w czasach ładowania stron.

  • Shopzilla odnotowała wzrost przychodów o 12% po poprawieniu średniego czasu ładowania strony z 6 sekund do 1,2 sekundy.
  • Google twierdzi, że traci 20% ruchu za każde kolejne 100 milisekund, które zajmuje załadowanie strony. Szybkość ma znaczenie. Google uwzględnia także czas ładowania strony w rankingach wyszukiwania w witrynie.
  • Yahoo zwiększył ruch o 9% za każde 400 ms poprawy.
  • Mozilla ma 60 milionów więcej pobrań Firefoksa rocznie , dzięki czemu ich strony są o 2,2 sekundy szybsze.
  • Amazon zwiększył przychody o 1% za każde 100 ms poprawy.

Postępuj zgodnie z poniższymi wskazówkami, aby przyspieszyć działanie Drupala i sprawić, by działał szybko, aby zapewnić zwrot użytkowników. Używamy Drupala 7.41. Proszę to zanotować Drupal 8 jest wydany 19 listopada. Kilka zmian obejmuje upuszczenie podstawowej obsługi IE 6,7 i 8 oraz dodanie obsługi PHP7.

1. Najnowsza wersja

Bardzo ważne jest, aby zawsze uruchamiać najnowsza wersja Drupala ponieważ aktualizacje zazwyczaj zawierają poprawki błędów i ulepszenia wydajności. Zawsze chcesz aktualizować rdzeń, moduł wkładów i motywy.

  1. Aby uruchomić aktualizacje, przejdź do „Raporty” → „Dostępne aktualizacje”.
  2. Następnie możesz kliknąć „Sprawdź ręcznie”, aby wyszukać dodatkowe aktualizacje.

2. Sieć dostarczania treści

Wdrażanie Sieć dostarczania treści (CDN) z Drupalem to szybki i łatwy sposób na natychmiastowe wyświetlenie zmniejszonego czasu ładowania dla Twojej witryny. W ten sposób zapewnisz, że obsługujesz swoje zasoby (obrazy produktów, JavaScript, CSS) z wielu lokalizacji na całym świecie, dzięki czemu są one szybciej dostarczane do użytkowników i zmniejszają opóźnienia.

KeyCDN ma prosty 8 krok integracja z Drupalem w którym możesz śledzić.

3. Wykorzystaj buforowanie

Drupal, w przeciwieństwie do wielu innych platform CMS, ma wbudowane w rdzeń opcje buforowania. Jest to prawdopodobnie najłatwiejszy sposób na przyspieszenie wydajności Drupala na Twojej stronie. Domyślnie jest to wyłączone.

Buforowanie strony

  1. Aby włączyć, przejdź do „Konfiguracja” → „Rozwój” → „Wydajność”.
  2. Włącz „Strony pamięci podręcznej dla anonimowych użytkowników”, a także „Bloki pamięci podręcznej”. Następnie możesz wybrać wartość czasu dla minimalnego czasu życia pamięci podręcznej i wygaśnięcia stron w pamięci podręcznej.
  3. Kliknij „Zapisz konfigurację”.

Jeśli zastanawiasz się nad różnicą między minimalnym czasem życia pamięci podręcznej a wygaśnięciem stron w pamięci podręcznej, jest całkiem niezły wyjaśnienie tutaj .

Jednak podobnie jak każdy inny CMS, opcje buforowania w pakiecie zwykle nie są tak wydajne. Oto kilka innych opcji buforowania, które można również sprawdzić.

Oto pełna lista moduły buforujące to robi skalę Drupala.

Buforowanie widoków

The moduł poglądów jest prawdopodobnie jednym z najpopularniejszych modułów na Drupalu. Jeśli go zainstalowałeś, możesz także włączyć na nim buforowanie.

  1. Aby włączyć, przejdź do „Administracja” → „Struktura” → „Widoki”.
  2. Kliknij „Edytuj” w widoku, w którym chcesz włączyć buforowanie.
  3. Rozwiń pole „Zaawansowane”.
  4. Wybierz „Oparte na czasie” i kliknij „Zastosuj (wszystkie wyświetlacze)”.
  5. Wybierz żądany czas i kliknij „Zastosuj (wszystkie wyświetlacze)”.

Oto kilka innych modułów, których można również użyć do buforowania widoków:

Buforowanie panelu

Innym popularnym modułem używanym przez ludzi w Drupalu jest moduł paneli . Możesz faktycznie włączyć buforowanie na każdym pojedynczym panelu.

  1. Aby włączyć, przejdź do „Administracja” → „Struktura” → „Strony”.
  2. Następnie przejdź do „Warianty” → „Treść” → „Buforowanie” i kliknij „Zmień”.
  3. Wybierz „Prosta pamięć podręczna” i kliknij „Dalej”.
  4. Następnie możesz wybrać czas trwania buforowania i kliknąć „Zapisz”.

Buforowanie PHP

Alternatywna pamięć podręczna PHP (APC) jest bardzo dobrze znany z tego, że pomaga zwiększyć szybkość instalacji Drupala.

Buforowanie przeglądarki

Inną formą buforowania, którą można wykorzystać, jest buforowanie przeglądarki. Zobacz następujące fragmenty, które możesz dodać do serwera, takie jak włączenie kompresji Gzip i dodanie nagłówków wygasania.

Kompresja Gzip

Gzip kompresuje strony internetowe i arkusze stylów na poziomie serwera przed wysłaniem ich do przeglądarki. Jeśli używasz Apache, możesz włączyć kompresję, dodając następujące elementy do pliku .htaccess.

<IfModule mod_deflate.c> # Kompresuj HTML, CSS, JavaScript, tekst, XML i czcionki AddOutputFilterByType DEFLATE aplikacja / javascript AddOutputFilterByType DEFLATE aplikacja / rss + xml AddOutputFilterByType DEFLATE aplikacja / vnd.ms-fontobject AddOutputFilterByType aplikacja DEFLATE / x-font AddOutputFilterByType aplikacja DEFLATE / x-font-opentype AddOutputFilterByType DEFLATE aplikacja / x-font-otf AddOutputFilterByType DEFLATE aplikacja / x-font-truetype AddOutputFilterByType DEFLATE aplikacja / x-font-ttf AddOutputFilterByType DEFLATE aplikacja / x-javascript AddOutputFilterByType DEFLATE aplikacja / xhtml + xml AddOutputFilterByType aplikacja / xhtml + xml AddOutputFilterByType aplikacja DEFLATE / xml AddOutputFilterByType DEFLATE czcionki / czcionek OpenType AddOutputFilterByType DEFLATE / OTF AddOutputFilterByType DEFLATE czcionki / ttf AddOutputFilterByType DEFLATE image / svg + xml AddOutputFilterByType DEFLATE image / x-icon AddOutputFilterByType DEFLATE text / css AddOutputFilterByType DEFLATE text / html AddOutputFilterByType DEFLATE text / javascript AddOutputFilterByType DEFLATE text / plain AddOutputFilterByType DEFLATE text / xml # Usuń błędy przeglądarki (potrzebne tylko w naprawdę starych przeglądarkach) BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4 0 [678] no-gzip BrowserMatch bMSIE! no-gzip! gzip-only-text / html Nagłówek dołącz Vary User-Agent </IfModule>

Jeśli korzystasz z Nginx, możesz włączyć kompresję, dodając następujące elementy do pliku nginx.conf.

gzip na; gzip_comp_level 2; gzip_http_version 1.0; gzip_proxied any; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types tekst / zwykły tekst / html tekst / css aplikacja / x-javascript tekst / xml aplikacja / xml aplikacja / xml + rss tekst / javascript; gzip_disable "MSIE [1-6]. (?!. * SV1)"; gzip_vary on;

Wygasają nagłówki informujące przeglądarkę, czy powinny zażądać pliku z serwera lub pobrać go z pamięci podręcznej przeglądarki.

<ifModule mod_expires.c> ExpiresActive On ########################################## ## ## Dodaj domyślny Expires nagłówek ## http://developer.yahoo.com/performance/rules.html#expires <FilesMatch "(ico | pdf | flv | jpg | jpeg | png | gif | js | css | swf) $ "> ExpiresDefault" dostęp plus 1 rok "</FilesMatch> </ifModule>

Usuń ciągi zapytań z zasobów statycznych {.entry-title}

Korzystne może być również usunięcie ciągów zapytań z zasobów statycznych, ponieważ może to powodować problemy z buforowaniem niektórych pamięci podręcznych proxy i CDN. Aby usunąć ciągi zapytań z nazw plików CSS w Drupalu, do pliku template.php można dodać następujący fragment kodu. Pamiętaj, aby zmodyfikować MYTHEME za pomocą nazwy motywu.

&lt;? php / ** * Implementuje template_process_html (). * / // Usuń ciągi zapytań z nazw plików CSS (CacheBuster) Funkcja MYTHEME_process_html (& $ zmienne) {$ zmienne ['style'] = preg_replace ('/ css? [^ "] + /', '. Css' , $ variables ['styles']);}?>

Na szczęście, jeśli używasz KeyCDN, nie jest to konieczne, ponieważ mamy polecany „Ignoruj ​​ciąg zapytań”, który możesz włączyć w panelu. Ta funkcja ignoruje ciągi zapytań i każe pamięci podręcznej odpowiedzieć buforowaną odpowiedzią, nawet jeśli ciąg zapytania jest inny.

Przeczytaj nasz bardziej szczegółowy post usuwanie ciągów zapytań .

4. Optymalizacja obrazu

Rozmawialiśmy o bezstratna kompresja obrazu w poprzednim poście średnio 56 procent wagi strony internetowej składa się z obrazów . Optymalizacja obrazów może więc znacznie skrócić czas ładowania strony i jest to coś, co zawsze zalecamy robić, jeśli chodzi o wydajność Drupala.

W Drupal 6 i 7 możesz zmienić współczynnik kompresji w plikach JPEG. Domyślnie w Drupalu 7 jest ustawiony na 75%.

  1. Aby zmienić, przejdź do „Konfiguracja” → „Zestaw narzędzi obrazu”.
  2. Następnie możesz zmienić kwotę% i kliknąć „Zapisz konfigurację”.

Dostępne są również moduły optymalizacji obrazu Drupal, takie jak Optymalizacja obrazu i ImageMagick .

5. Leniwe ładowanie obrazów

Leniwe ładowanie obrazów może znacznie zwiększyć czas ładowania strony, zapewniając, że obraz zostanie załadowany tylko wtedy, gdy jest widoczny w oknie przeglądarki. Najpopularniejszym modułem Drupala jest obecnie „ Obraz Lazyloader ”Z ponad 18 000 pobrań.

Zalecamy również używanie modułu takiego jak „ Filtr zmiany rozmiaru obrazu ”Tak, aby Twoje obrazy były zmniejszane po ich przesłaniu i nie polegasz na CSS w celu ich zmniejszenia.

6. 404s

Zamiast sprawdzać moduł 404 za pomocą modułu, od czasu do czasu zalecamy uruchamianie witryny za pośrednictwem usługi zewnętrznej, takiej jak „ Sprawdzony link online ”Lub narzędzie takie jak Krzycząca Żaba . Dzięki temu nie marnujesz zasobów swojego serwera na to zadanie.

Również Drupal ma kosztowne 404 błędy. W przeciętnej witrynie z przeciętnym obciążeniem modułu możesz przeglądać 60-100 MB pamięci na serwerze, aby dostarczyć 404. Drupal Szybki 404 moduł naprawia to i zazwyczaj może dostarczyć błędy 404 przy użyciu mniej niż 1 MB pamięci.

7. Wyłącz niepotrzebne moduły

Podobnie jak w przypadku każdej platformy i wtyczek CMS, każdy moduł w Drupalu ma nałożony narzut. Dlatego nie zaleca się uruchamiania więcej niż 50 modułów. Oto kilka modułów, które możesz wyłączyć, jeśli nie potrzebujesz funkcjonalności witryny.

  • Narzędzia do tworzenia administracji
  • Devel
  • Dostęp do węzła rozwoju
  • Interfejs użytkownika
  • Interfejs reguł
  • Widoki interfejsu użytkownika
  • Filtr modułowy
  • Blog
  • Forum
  • Taksonomia
  • Szukaj
  • Wsparcie
  • Skrót
  • Deska rozdzielcza
  • Rejestrowanie bazy danych
  • Kolor
  • pasek narzędzi
  • Naganiacz zwierza
  • Statystyki (ten moduł zapisuje do twojej bazy danych przy każdym załadowaniu strony. Jeśli korzystasz z Google Analytics, prawdopodobnie nie potrzebujesz tego.)
  • Menedżer aktualizacji (jeśli masz środowisko do migracji, nie ma powodu, aby cały czas potrzebować odpytywania menedżera aktualizacji o drupal.org).

Łącząc swoje pliki CSS i JavaScript, możesz poprawić wydajność frontendu i czas pobierania, ponieważ Twoja przeglądarka nie musi pobierać tylu plików i zmniejsza całkowitą liczbę wykonywanych żądań HTTP.

  1. Aby włączyć, przejdź do „Konfiguracja” → „Rozwój” → „Wydajność”.
  2. Włącz „Agreguj i kompresuj pliki CSS” i „Agreguj pliki JavaScript”.
  3. Kliknij „Zapisz konfigurację”.

Uwaga: Dotyczy to zarówno użytkowników zalogowanych, jak i niezalogowanych.

Aby uzyskać bardziej zaawansowaną agregację CSS i JavaScript, zalecamy sprawdzenie „ Zaawansowana agregacja CSS / JS ”Moduł.

9. Odwróć serwer proxy

Możliwe jest umieszczenie innej aplikacji przed swoją, która będzie służyć do przechowywania kopii stron WWW w pamięci podręcznej. Nazywa się to „buforowaniem odwrotnego proxy” lub czasami nazywane „akceleratorem HTTP”. Lakier jest używany do stron o dużym natężeniu ruchu, takich jak Wikipedia, Facebook, Twitter itp. Istnieją dwa popularne moduły Drupala, jeśli chodzi o używanie Varnish.

10. Dodatkowe ulepszenia

11. Wybierz Fast Web Hosting

I wreszcie, wybór niezawodnego i szybkiego hosta internetowego może być jedną z najważniejszych decyzji, które podejmiesz, próbując poprawić wydajność Drupala. Zalecamy trzymanie się z daleka od taniego hostingu dzielonego, ponieważ mają tendencję do przepełniania swoich serwerów, co skończy się dzieleniem zasobów między setki osób. Sugerujemy, aby wybrać VPS DigitalOcean , Linode lub Vultr . Powodem jest to, że będziesz w pełni kontrolować swoje zasoby. A jeśli nie jesteś tak zaawansowany technicznie lub nie chcesz zarządzać swoimi serwerami za pomocą CLI, ServerPilot to świetna alternatywa dla panelu sterowania, która działa z Drupalem i wspomnianymi wyżej dostawcami VPS.

streszczenie

Jak widzisz, istnieje wiele sposobów przyspieszenia wydajności Drupala, musisz tylko wiedzieć, gdzie szukać. Od implementacji CDN po buforowanie, optymalizację obrazu, leniwe ładowanie obrazów, naprawianie 404s, agregowanie plików CSS / JS i wyłączanie niepotrzebnych modułów.

Czy masz inny sposób na przyspieszenie Drupala, którego przegapiliśmy? Chcielibyśmy usłyszeć o tym poniżej w komentarzach.

Ponieważ WordPress jest tak popularny, wiele osób pyta, dlaczego ktoś wybrałby Drupala w WordPressie?
Dlaczego miałbyś dbać o przyspieszenie Drupala?
Lt;?
Usuń ciągi zapytań z nazw plików CSS (CacheBuster) Funkcja MYTHEME_process_html (& $ zmienne) {$ zmienne ['style'] = preg_replace ('/ css? [^ "] + /', '. Css' , $ variables ['styles']);}?
Czy masz inny sposób na przyspieszenie Drupala, którego przegapiliśmy?