Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish

Procédure

Dlaczego warto przyspieszyć czas ładowania swojej strony?

Warto wiedzieć, że czas ładowania Twojej strony ma kluczowe znaczenie dla zapewnienia jej sukcesu. Na przykład dla firmy daje to odwiedzającym pierwsze wrażenie. Ponadto, zbyt długie ładowanie może mieć wpływ na pozycjonowanie Twojej strony w głównych wyszukiwarkach i nie zapewni jej wystarczającej ekspozycji, aby mogła się rozwijać.

Nie istnieje jeden próg, którego nie należy przekraczać w odniesieniu do ładowania stron internetowych. Jednak czas ładowania większości witryn internetowych wynosi mniej niż trzy sekundy.

Czym jest Fastest Cache i do czego służy?

Narzędzie Fastest Cache to system zaprojektowany i opracowany przez LWS, umożliwiający optymalizację wydajności ładowania Twojej witryny internetowej dzięki wykorzystaniu mechanizmów cache’owania stron, skonfigurowanych na poziomie serwera WWW. Narzędzie łączy technologie dostarczane przez NGINX i Varnish.

NGINX to serwer WWW zorientowany na wydajność, pozwalający obsłużyć znacznie większą liczbę żądań niż Apache (zobacz nasz wpis na blogu zatytułowany „Apache VS Nginx : Test de performance”). Jest on głównie używany w Fastest Cache do obsługi bezpiecznego dostępu HTTPS do Twojej strony, eliminowania złośliwych żądań HTTP (zobacz LWS Protect) oraz przekierowywania żądań HTTP do serwerów cache Varnish.

Varnish to usługa HTTP implementująca mechanizm cache’owania stron, umożliwiający zapisanie w pamięci wyniku żądania HTTP.

Przy odpowiedniej konfiguracji NGINX pozwala obsłużyć większą liczbę żądań na Twojej stronie internetowej, a Varnish jednocześnie przyspiesza czas ładowania strony, zmniejszając zużycie CPU i pamięci.

Jak działa usługa Fastest Cache?

1. Działanie bez cache

Aby lepiej zrozumieć działanie, najpierw zobaczymy, jak to wygląda bez wtyczki cache, aby odwiedzający mógł zobaczyć Twoją stronę.

Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish
Obsługa żądania HTTP bez Fastest Cache

1. Odwiedzający wysyła żądanie strony do serwera WWW. Przykład: index.php

2. Serwer WWW wykonuje niezbędne skrypty (PHP, Perl, NodeJS, …)

3. Serwer WWW otrzymuje wynik wykonania

4. Serwer WWW wysyła stronę HTML wynikającą z wykonania skryptu

2. Działanie z modułem Fastest Cache

Gdy Fastest Cache jest aktywny, serwer cache jest wprowadzany pomiędzy odwiedzającego a serwer WWW.

Celem jest zmniejszenie liczby wymaganych uruchomień skryptów poprzez przechowywanie wyniku wykonania w pamięci na potrzeby kolejnych żądań wymagających tej samej odpowiedzi. Dzięki temu ten sam skrypt nie musi być wykonywany wielokrotnie, aby uzyskać identyczny wynik.

W ten sposób eliminujemy czas oczekiwania związany z wykonaniem skryptu z czasu ładowania strony, a przy okazji oszczędzamy zasoby zużywane podczas wykonywania skryptu.

Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish
Obsługa żądania HTTP z Fastest Cache

1. Odwiedzający wysyła żądanie strony do serwera WWW. Przykład: index.php
2. Fastest Cache sprawdza, czy strona została już wygenerowana i zapisana w pamięci cache

  • Jeśli tak, strona jest bezpośrednio zwracana odwiedzającemu bez konieczności dostępu do usługi WWW i bez wykonywania skryptu
  • Jeśli nie, strona jest wysyłana do wygenerowania w usłudze WWW, co skutkuje wykonaniem skryptu (PHP, NodeJS, Perl, Ruby, …).

3. Po wygenerowaniu strony Fastest Cache określa, czy może ona zostać zachowana w cache (na podstawie nagłówków, URL, …)

  • Jeśli tak, strona zostaje zapisana w pamięci cache i odesłana do odwiedzającego
  • Jeśli nie, strona zostaje zapisana w pamięci microcache (cache o krótkim czasie ważności) i odesłana do odwiedzającego

Widać więc, że gdy strona jest przechowywana w pamięci cache, obsługa przez serwer WWW oraz wykonanie skryptu są pomijane.

Cacheable, non cacheable i microcache

Gdy usługa WWW dostarcza nową odpowiedź do Fastest Cache, jest ona analizowana w celu określenia, czy powinna zostać zachowana w pamięci cache do przyszłego użycia.

Niektóre treści stron nie powinny być przechowywane w pamięci cache, takie jak wynik formularza rejestracyjnego, wynik strony płatności, … ponieważ zawierają dane zmieniające się w zależności od użytkowników i zdarzeń.

Aby określić, czy strona może zostać zapisana w cache, czy nie, Fastest Cache wykorzystuje kilka mechanizmów:

  • Żądania HTTP wykorzystujące metody inne niż HEAD i GET będą systematycznie wykluczane z cache.
  • Żądania HTTP zawierające pliki cookie również zostaną wykluczone. Pliki cookie używane przez Google Analytics, XiTi, DoubleClick, Quant Capital, AddThis i Cloudflare są usuwane przed wykryciem. Podobnie pliki cookie powiązane ze znanymi CMS-ami są obsługiwane automatycznie, jeśli tryb cache odpowiada danemu CMS-owi.
  • Żądania HTTP chronione hasłami .htaccess
  • Jeśli odpowiedź serwera WWW zawiera instrukcje cache przeglądarki (nagłówek cache-control), zostanie ona automatycznie uwzględniona przez Fastest Cache, a strona zostanie zachowana w pamięci cache.

Jeśli żądanie HTTP ma typ GET i nie jest ani chronione przez .htaccess, ani nie zawiera plików cookie, a także nie ma precyzyjnych instrukcji cache przeglądarki, zostanie zachowane w microcache przez kilka sekund.

Microcache pozwala zatem radzić sobie ze wzrostami liczby żądań na stronach nieobjętych cache. Na przykład umożliwia to rozwiązanie przeciążeń i spowolnień w przypadku fali wyszukiwań tego samego produktu w sklepie ecommerce.

Prezentacja interfejsu i aktywacja usługi

Fastest Cache jest dostępny jako ikona w cPanel w sekcji „Performance”.

Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish

Po wejściu do interfejsu na liście wyświetlane są domena główna, domeny dodatkowe i subdomeny.

Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish

  • Kolumna „Statut du cache” pokazuje stan aktywacji cache. Jeśli widnieje tam „Activé”, cache jest aktywne.
  • Przycisk „Purger le cache” pozwala usunąć wszystkie dane z cache dla tej konkretnej nazwy domeny.
  • Przycisk „Désactiver le cache” pozwala wyłączyć cache’owanie.
  • Przycisk „Activer le cache” pozwala włączyć cache’owanie.
  • Przycisk „Changer le mode de fonctionnement” pozwala zmienić sposób działania systemu cache. Tryby te zostaną wyjaśnione poniżej.

Różne tryby cache

Domyślnie system cache wybiera tryb „Utilisation générale”, odpowiedni do ogólnego użytku. Istnieją jednak inne tryby:

Tryb deweloperski : identyczny z wyłączeniem cache, pozwala on ominąć system cache w okresach prac rozwojowych.
WordPress : tryb cache lepiej dostosowany do WordPressa, w którym ulepszono obsługę katalogów (wp-content, wp-admin, …) oraz plików cookie specyficznych dla WordPressa.
Prestashop : tryb cache lepiej dostosowany do Prestashop, w którym ulepszono obsługę katalogów i plików cookie.

Przyspiesz prędkość swojej strony dzięki Fastest Cache - Cache Varnish

Czyszczenie cache

Poza interfejsem cPanel umożliwiającym czyszczenie cache, możliwe jest także ręczne wyczyszczenie cache z terminala SSH konta cPanel lub z poziomu skryptu hostowanego na serwerze.

Uruchamiane z Twojego hostingu (skrypt PHP Twojej strony, zadanie Cron lub terminal SSH), metody te nie wymagają ani tokenu API, ani identyfikatora : Fastest Cache bezpośrednio akceptuje metody HTTP PURGE i FULLPURGE. Token lwsapitoken dotyczy wyłącznie LWS Cache, cache panelu LWS (zobacz tę pomoc).

1. Czyszczenie cache za pomocą cURL

Wyczyść cache strony:

⌨ Polecenie
curl -X 'PURGE' http://mon-site-web.com/mapage.php

Pozwoli to wyczyścić cache adresu URL http://mon-site-web.com/mapage.php.

Wyczyść cache katalogu:

⌨ Polecenie
curl -X PURGE -H 'X-Purge-Method: regex' 'https://mon-site-web.com/wp-content/uploads/.*'

Pozwoli to wyczyścić wszystkie cache adresów URL zaczynających się od 'http://mon-site-web.com/wp-content/uploads/'

Wyczyść cache całej witryny

⌨ Polecenie
curl -X 'FULLPURGE' http://mon-site-web.com

Dla wszystkich tych trzech poleceń możliwe są dwie odpowiedzi:

Kod HTTP 200 : czyszczenie cache przebiegło pomyślnie bez błędu.

Kod HTTP 405 : czyszczenie cache nie jest dozwolone lub nie zostało wykonane.

2. Automatyczne czyszczenie za pomocą skryptu PHP (zadanie Cron)

Poniższy skrypt czyści cache całej witryny albo tylko kilku stron. Skopiuj go do pliku purge-cache.php na swoim hostingu, a następnie wpisz swoją domenę w $site. Aby wyczyścić tylko wybrane strony, wpisz je w $pages.

Kod
 $methode,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT        => 20,
    ]);
    curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    return $code;
}

if (empty($pages)) {
    echo date('Y-m-d H:i:s') . ' purge complete : HTTP ' . purger('FULLPURGE', $site) . PHP_EOL;
} else {
    foreach ($pages as $page) {
        echo date('Y-m-d H:i:s') . ' ' . $page . ' : HTTP ' . purger('PURGE', $site . $page) . PHP_EOL;
    }
}
// HTTP 200 : purge effectuee. HTTP 405 : purge refusee ou non effectuee.

Aby uruchamiać go automatycznie, na przykład każdej nocy, utwórz zadanie Cron, które wykonuje ten plik za pomocą PHP. Jeśli chcesz po prostu wyczyścić cały cache, zadanie Cron może również wykonać bezpośrednio:

⌨ Polecenie
curl -s -X FULLPURGE https://mon-site-web.com

3. Czyszczenie za pomocą wtyczki lub modułu

Większość wtyczek/modułów z integracją Varnish jest kompatybilna z wewnętrznym mechanizmem czyszczenia Fastest Cache.

Oto kilka przetestowanych i sprawdzonych kompatybilnych wtyczek:

Wykrywanie HTTPS i przekierowania

Status HTTPS oraz porty wskazane w Apache są modyfikowane przez moduł mod_fastestcache zintegrowany z Apache. Zazwyczaj nie ma więc potrzeby wprowadzania zmian.

Jeśli jednak wykrywanie HTTPS nie działa z Fastest Cache, może to powodować nieskończone pętle przekierowań. W takim przypadku konieczna będzie modyfikacja danych wykrywania.

Zaufane nagłówki HTTP używane do wykrywania to:

  • X-Forwarded-Proto
  • X-Forwarded-Port

Jeśli więc używasz poniższego przekierowania HTTPS w pliku .htaccess:

Kod
RewriteEngine On 
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

i nie działa to poprawnie, możesz zastąpić zmienną SERVER_PORT przez X-Forwarded-Proto:

Kod
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !on
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

CloudFlare i inne CDN

Sieci CDN typu CloudFlare stosują filtry żądań HTTP, które mogą blokować żądania „PURGE” i „FULLPURGE” używane przez Fastest Cache do czyszczenia cache.

Zalecamy korzystanie tylko z jednego poziomu cache, czyli do wyboru Cloudflare albo Fastest Cache.

Ich łączone użycie może powodować niepożądane zachowania. Przetestuj oba rozwiązania i użyj tego, które najlepiej odpowiada Twoim potrzebom.

help.lws.net/a/1515
Czy ten artykuł był pomocny?

Tak

Nie

Przeczytano 23 517 razy

Dziękujemy! Zadawaj pytania dotyczące naszej dokumentacji, jeśli potrzebujesz więcej informacji, i pomóż nam ją ulepszyć.

Podobne artykuły

Pytania dotyczące artykułu 2

Zadaj pytanie
raf
19 wrz 2022
Bonjour vous indiquez à la fin de votre article, qu’il faut utiliser un seul niveau de cache, donc je ne comprend pas si on peut utiliser cloudflare avec Fastest cache au niveau du serveur ou pas ?
fabrice-LWS Oficjalna odpowiedź
20 wrz 2022
Bonjour, il est préférable d'utiliser qu'un système de cache afin de ne pas rencontrer de problème. L'utilisation de plusieurs systèmes de cache différents est souvent contre-productif et peut engendrer différents problèmes comme le blocage de certaines requêtes telles que celles permettant de purger le cache d'une page de votre site ou toutes les pages.
Czy ta odpowiedź była pomocna?
raf
19 wrz 2022
Et au niveau du plug-in wordpress WP Rocket : est il compatible ?
fabrice-LWS Oficjalna odpowiedź
20 wrz 2022
Bonjour, le plugin WP rocket est compatible avec Fastest Cache.
Czy ta odpowiedź była pomocna?

Masz pytanie dotyczące tego artykułu?

Zadaj je zespołowi LWS i społeczności. Odpowiedź zostanie opublikowana po moderacji.

Zadaj pytanie zespołowi LWS i jego społeczności

RODO: Administrator: LWS-Ligne Web Services. Cel: moderacja i publiczna publikacja pytania, ewentualne powiadomienie o odpowiedzi. Podstawa prawna: zgoda (art. 6 ust. 1 lit. a RODO). Przechowywanie adresów e-mail: 90 dni po powiadomieniu, maksymalnie 12 miesięcy bez odpowiedzi. Aby skorzystać ze swoich praw, zobacz sekcję RODO naszego regulaminu.