Przyspiesz WordPress za pomocą Redis i Varnish na Ubuntu

  • Vovich Masterovich
  • 0
  • 577
  • 106

WordPress to najpopularniejszy CMS (system zarządzania treścią) używany obecnie w internecie. Chociaż wielu ludzi go używa, ponieważ jest potężny i prosty. Czasami ludzie robią kompromis dla wygody w zakresie ładowania i szybkości witryny i stron internetowych.

Dzisiaj przedstawimy dwa narzędzia, które pomogą Ci przyspieszyć Twoją witrynę na WordPress.

Pierwsze narzędzie to: Lakier

Varnish to akcelerator HTTP i przydatne narzędzie do przyspieszania działania serwera, zwłaszcza w okresach dużego ruchu na stronie. Działa poprzez przekierowywanie odwiedzających na strony statyczne, gdy tylko jest to możliwe, i rysuje na samym wirtualnym serwerze prywatnym tylko wtedy, gdy istnieje potrzeba aktywnego procesu.

Drugie narzędzie to: Redis

Redis to magazyn wartości kluczy typu open source, który może działać zarówno jako magazyn w pamięci, jak i jako pamięć podręczna. Redis to serwer struktury danych, który może być używany samodzielnie jako serwer bazy danych lub w połączeniu z relacyjną bazą danych, taką jak MySQL, aby przyspieszyć działanie, tak jak to robimy w tym samouczku.

To są dwa całkiem różne programy. Ostateczny cel obu części oprogramowania jest jednak taki sam, a większość witryn korzysta z obu technologii w celu przyspieszenia dostarczania. Jeden to moduł równoważenia obciążenia HTTP, który buforuje Varnish (akcelerator HTTP), a drugi to prosty magazyn klucz-wartość Redis. Powinieneś wybrać ten, który jest odpowiedni dla twoich szczególnych potrzeb.

W tym samouczku Redis i Varnish zostaną skonfigurowane jako pamięć podręczna dla WordPress, aby zmniejszyć nadmiarowe i czasochłonne zapytania http i bazy danych używane do renderowania strony WordPress.

Zainstaluj i skonfiguruj Varnish z Apache

Zanim zaczniesz instalować lakier na serwerze witryny WordPress, załóż, że zainstalowałeś WordPress na Ubuntu. Możesz postępować zgodnie z naszym przewodnikiem Jak zainstalować WordPress w Ubuntu.

Musisz także mieć użytkownika z uprawnieniami sudo.

Zainstaluj lakier

Varnish jest rozprowadzany w repozytoriach pakietów Ubuntu, ale tamtejsza wersja może być nieaktualna, dlatego witryna lakiernicza zaleca instalację pakietu lakieru za pośrednictwem swojego repozytorium.

Jedyną obsługiwaną architekturą jest amd64.

sudo apt-get install apt-transport-https
curl https://repo.varnish-cache.org/GPG-key.txt | sudo apt-key add -

Następnym krokiem jest dodanie repozytorium do listy źródeł apt.

sudo echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.0" >> /etc/apt/sources.list.d/varnish-cache.list

Zapisz i wyjdź.

Na koniec zaktualizuj apt-get i zainstaluj lakier.

sudo apt-get update
sudo apt-get install lakier

Skonfiguruj lakier

Po zainstalowaniu varnsih możesz rozpocząć jego konfigurację.

Varnish będzie obsługiwał zawartość na porcie 80 i należy zmienić apache, aby działał na porcie 8080.

Rozpocznij konfigurację, otwierając plik / etc / default / varnish plik:

sudo nano / etc / default / varnish

Odkomentuj wszystkie wiersze poniżej „DAEMON_OPTS”-w Alternative 2 i dopasuj konfigurację do następującego kodu:

DAEMON_OPTS = "- a: 80 \ -T localhost: 6082 \ -f /etc/varnish/default.vcl \ -S / etc / varnish / secret \ -s malloc, 256m"

Po zapisaniu i wyjściu z tego pliku otwórz plik default.vcl plik:

sudo nano /etc/varnish/default.vcl

Varnish wykorzystuje koncepcję serwera zaplecza lub serwera pochodzenia, aby określić, skąd ma pobierać zawartość, jeśli nie jest trwała w pamięci podręcznej. Edytować /etc/varnish/default.vcl z edytorem tekstu i upewnij się, że jest obecny.

domyślne zaplecze .host = "127.0.0.1"; .port = "8080"; 

Teraz ostatnim krokiem w konfiguracji lakieru jest konfiguracja portu Apache.

Otwórz plik portów Apache:

sudo nano /etc/apache2/ports.conf

Zmień numer portu zarówno dla NameVirtualHost, jak i linii Listen na port 8080, a wirtualny host powinien być dostępny tylko z lokalnego hosta.

NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080

Zmień także te ustawienia w domyślnym pliku hosta wirtualnego:

sudo nano / etc / apache2 / sites-available / default

Wirtualny host również powinien być ustawiony na port 8080, a zaktualizowana linia wygląda jak w tym przykładzie:

Teraz, gdy konfiguracja jest zakończona, musisz uruchomić Varnish i ponownie uruchomić Apache.

Po wykonaniu tej czynności cały ruch do naszej witryny WordPress przechodzi przez Varnish, zanim trafi na serwer Apache.

sudo service varnish start sudo service apache2 restart

Konfiguracja WordPress z Varnish

Po zainstalowaniu Varnish musisz pozwolić WordPressowi wyczyścić zawartość pamięci podręcznej po każdej modyfikacji. Jest kilka wtyczek do osiągnięcia tego. W tym poradniku użyjemy Varnish HTTP Purge.

Przejdź do pulpitu WordPress, kliknij Wtyczki> Dodaj nowy i wyszukaj „Lakierowanie HTTP Purge”. Kliknij 'Zainstaluj teraz' i potwierdź. Na koniec aktywuj go.

Aby wtyczka Varnish HTTP Purge działała poprawnie, należy ją włączyć mod_rewrite za pomocą tego polecenia

sudo a2enmod przepisać

Następnie użyj niestandardowej struktury adresów URL dla linków bezpośrednich i archiwów. Przejdź do pulpitu WordPress i kliknij Ustawienia> Linki bezpośrednie i wybierz „Struktura niestandardowa”. Następnie wpisz /% year% /% monthnum% /% post_id% i kliknij „Zapisz zmiany”.

Najlepsza paratice of Varnish z wordpress

Jednym z najlepszych sposobów jest wykluczenie wszelkich stron związanych z administrowaniem lub logowaniem przed trafieniem do pamięci podręcznej.

otwarty /etc/varnish/default.vcl i dodaj następujące informacje, zanim usuniemy pliki cookie z poprzedniego kroku.

if (req.url ~ "wp-admin | wp-login") return (pass); 

Varnish używa parametru max-age w nagłówku HTTP Cache-Control, aby ustalić, jak długo zawartość jest uważana za świeżą, zanim ponownie skontaktuje się z backendem.

Domyślna konfiguracja Varnish to 120 sekund trzeba przedłużyć ten okres do jednej godziny możemy zaktualizować /etc/varnish/default.vcl.

sub vcl_backend_response if (beresp.ttl == 120s) set beresp.ttl = 1h; 

Varnish nie będzie buforował treści dla żądań, w tym pliku cookie lub nagłówka, ani odpowiedzi, w tym nagłówka Set-Cookie.

WordPress ustawia wiele plików cookie, które można bezpiecznie zignorować podczas normalnego przeglądania, więc zaktualizujmy /etc/varnish/default.vcl i dodaj następujące elementy w środku vcl_recv aby je usunąć.

ustaw req.http.cookie = regsuball (req.http.cookie, "wp-settings- \ d + = [^;] + (;)?", ""); ustaw req.http.cookie = regsuball (req.http.cookie, "wp-settings-time- \ d + = [^;] + (;)?", ""); ustaw req.http.cookie = regsuball (req.http.cookie, "wordpress_test_cookie = [^;] + (;)?", ""); if (req.http.cookie == "") unset req.http.cookie; 

Teraz musisz ponownie załadować konfigurację Varnish za pomocą tego polecenia

Ponowne ładowanie lakieru usługi sudo

Zainstaluj i skonfiguruj Redis z Apache

Zainstaluj Redis

Aby korzystać z Redis z WordPress, należy zainstalować dwa pakiety: redis-server i php5-redis.

Plik redis-server pakiet zapewnia Redis, podczas gdy php5-redis pakiet zawiera rozszerzenie PHP dla aplikacji PHP, takich jak WordPress, do komunikacji z Redis.

Użyj tego polecenia, aby go zainstalować

sudo apt-get install redis-server php5-redis

Skonfiguruj Redis

Ponieważ Redis może działać jako serwer pamięci podręcznej i baza danych nosql. Musisz go skonfigurować w swojej witrynie Wordpress jako pamięć podręczną. W tym celu wymagane są następujące ustawienia.

Edytuj plik /etc/redis/redis.conf i dodaj następujące wiersze u dołu:

sudo nano /etc/redis/redis.conf 

Dodaj te wiersze na końcu pliku:

maxmemory 256mb maxmemory-policy allkeys-lru 

Po wprowadzeniu zmian zapisz i zamknij plik.

Konfiguracja WordPress z Redis

Następnym krokiem jest instalacja Wtyczka Redis Object Cache WordPress.

Ta wtyczka jest trwałym zapleczem pamięci podręcznej obiektów obsługiwanym przez Redis. Obsługuje rozszerzenie Redis firmy HHVM, rozszerzenie PCEL Redis i bibliotekę Predis dla PHP.

Musisz zainstalować i aktywować tę wtyczkę z pulpitu Wordpress. Przejdź do pulpitu WordPress, kliknij Wtyczki> Dodaj nowy i wyszukaj „Pamięć podręczna obiektów Redis”. Kliknij 'Zainstaluj teraz' i potwierdź. Na koniec aktywuj go.

Następnie musisz włączyć pamięć podręczną obiektów pod Narzędzia -> Redis.

W razie potrzeby dostosuj parametry połączenia tej wtyczki. Domyślnie drop-in Object Cache łączy się z Redis przez TCP o godzinie 127.0.0.1:6379 i wybierz bazę danych 0.

Aby dostosować parametry połączenia, zdefiniuj następujące stałe w pliku wp-config.php.

  • WP_REDIS_CLIENT [domyślnie: nie ustawiono] Określa klienta używanego do komunikacji z Redis. Obsługuje hhvm, pecl ipredis.
  • WP_REDIS_SCHEME [domyślna: tcp] Określa protokół używany do komunikacji z instancją Redis. Klient wewnętrznie używa klasy połączenia skojarzonej z określonym schematem połączenia. Obsługuje tcp (TCP / IP), unix (Gniazda domeny UNIX) lub http (Protokół HTTP przez Webdis).
  • WP_REDIS_HOST [domyślna: 127.0.0.1] IP lub nazwa hosta serwera docelowego. Jest to ignorowane podczas łączenia się z Redis przy użyciu gniazd domeny UNIX.
  • WP_REDIS_PORT [domyślna: 6379] Port TCP / IP serwera docelowego. Jest to ignorowane podczas łączenia się z Redis przy użyciu gniazd domeny UNIX.
  • WP_REDIS_PATH [domyślnie: nie ustawiono] Ścieżka do pliku gniazda domeny UNIX używanego podczas łączenia się z usługą Redis przy użyciu gniazd domeny UNIX.
  • WP_REDIS_DATABASE [domyślna: 0] Akceptuje wartość liczbową używaną do automatycznego wybierania logicznej bazy danych z rozszerzeniem WYBIERZ Komenda.
  • WP_REDIS_PASSWORD [domyślnie: nie ustawiono] Akceptuje wartość używaną do uwierzytelniania na serwerze Redis chronionym hasłem z rozszerzeniem AUTH Komenda.
  • WP_REDIS_MAXTTL [domyślnie: nieustawione] Ustaw maksymalny czas życia (w sekundach) dla kluczy pamięci podręcznej z czasem wygaśnięcia 0.

Prefiksowanie kluczy pamięci podręcznej

Plik WP_CACHE_KEY_SALT stała, aby dodać przedrostek do wszystkich kluczy pamięci podręcznej.

Użytkownicy korzystający z konfiguracji, w których wiele instalacji jest wspólnych wp-config.php lub$ table_prefix może użyć tej stałej, aby zagwarantować niepowtarzalność kluczy generowanych przez tę pamięć podręczną obiektów.

Na koniec uruchom ponownie redis-service i apache2.

Uruchom ponownie Redis:

restart usługi sudo redis-server 

Uruchom ponownie Apache:

restart usługi sudo apache2

Możesz teraz sprawdzić szybkość ładowania strony i wykorzystanie zasobów, powinieneś zauważyć poprawę.

 

Aby monitorować Redis, użyj redis-cli polecenie takie:

monitor redis-cli

Postępując zgodnie z tym przewodnikiem, przyspieszysz swoją witrynę WordPress.

Ciesz się i dziękuję 🙂




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux