Home > Linux > Serwery > Optymalizacja serwera VPS i optymalizacja strony internetowej
optymalizacja serwera VPS

Optymalizacja serwera VPS i optymalizacja strony internetowej

Instalacja i konfiguracja Brotli

Brotli może pracować jako niezależna usługa, oraz jako moduł PHP lub Apache. W naszej konfiguracji będzie pracował on jako moduł PHP. Najpierw jednak zainstalujmy samo Brotli.

$ apt-get install brotli

Następnie musimy pobrać i zainstalować moduł PHP dla Brotli (na dzień dzisiejszy niedostępny w repozytoriach Ubuntu)

Uwaga: x w tym przypadku oznacza wersję PHP. php7.x, to np. zalecane php7.3 i tak powinniśmy to wpisać, czyli np. php7.3-dev itp.

$ sudo apt install php7.x-dev -y

$ git clone --recursive --depth=1 https://github.com/kjdev/php-ext-brotli.git

$ cd php-ext-brotli

$ phpize

$ ./configure --with-php-config=php-config7.x

$ sudo make install clean

Teraz otwieramy do modyfikacji plik brotli.ini znajdujący się w katalogu /etc/php/7.x/mods-available/ jeśli go tam nie ma, to go tam tworzymy komendą

$ sudo touch /etc/php/7.x/mods-available/brotli.ini

w brotli.ini wpisujemy poniższą regułę

extension=brotli.so

zapisujemy i uruchamiamy moduł komendą

$ sudo phpenmod brotli

$ php -a

$ echo is_callable('brotli_compress');

Instalacja i konfiguracja Redis

Jak w powyższym przypadku, instalacja polega na zainstalowaniu zarówno samej usługi Redis jak i modułu PHP. W Ubuntu jednak Redis jest dość przestarzały, więc warto go mieć zawsze w najnowszej wersji. Nowa wersja często posiada ulepszony i bardziej wydajny algorytm cachujący oraz co jest także nie bez znaczenia, poprawki pod względem bezpieczeństwa. W stosunku do starszych wersji oczywiście.

W konsoli wpisujemy.

$ sudo add-apt-repository ppa:chris-lea/redis-server

$ sudo apt-get update

$ sudo apt-get install redis-server php-redis

Powinno nam to zainstalować wszystkie potrzebne pakiety, wraz zależnościami.

Kolejnym krokiem będzie konfiguracja Redis pod nasze potrzeby. Przechodzimy do katalogu /etc/redis/ i otwieramy do edycji plik redis.conf. Redis do buforowania, najlepiej przydzielić jest około 2/3 dostępnej (wolnej) pamięci ram. U mnie jest to lekko ponad 1600mb, więc przypisałem Redis 1024mb – 1gb.

maxmemory 1024mb

w tym samym pliku ustawiamy, co Redis ma robić w przypadku zapełnienia całej dostępnej dla niego pamięci. Ustawiamy, że ma nadpisywać najstarsze dane cache, najnowszymi danymi.

maxmemory-policy allkeys-lfu

Zapisujemy zmiany i restartujemy serwer VPS, aby mieć pewność, że wszystkie nowo zainstalowane i skonfigurowane usługi zostaną uruchomione.

$ sudo reboot

Instalacja i konfiguracja mod_pagespeed

Tym razem usługa zostanie uruchomiona jako moduł apache, gdyż tylko w taki sposób jest ona dostępna.

mod_pagespeed jest dystrybuowany przez Google w wersji stabilnej oraz wersji rozwojowej. My zajmiemy się instalacją wersji stabilnej.

$ sudo wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb

$ sudo dpkg -i mod-pagespeed-*.deb

Teraz w /etc/apache2/mods-available/ otwieramy do edycji plik pagespeed.conf i włączamy lub wyłączamy potrzebne nam filtry. Żeby filtry działały, pierwsza opcja ModPagespeed musi być ustawiona na on, reszta zależy już od twoich preferencji.

Moduł mod_pagespeed powinien być automatycznie włączony po jego instalacji, więc wydajemy tylko polecenie restartujące Apache.

$ sudo service apache2 restart

Zatrzymaj się tutaj na chwilę i sprawdź, czy wszystko działa jak powinno. W najlepszej sytuacji jesteś, jeśli korzystasz ze skryptu Word Press oraz wtyczki W3 Total Cache na swojej stronie. Poprawna konfiguracja wtyczki wygeneruje odpowiednie reguły dla .htaccess, które pozwolą na używanie Brotli i Redis.

Jeżeli nie używasz WP, ani W3 Total Cache, będziesz musiał poszukać w internecie jak użyć powyższych usług z twoją stroną (skryptem z którego ona korzysta). Często dla innych skryptów, także istnieją osobne wtyczki do tego celu.

Konfiguracja wtyczki W3 Total Cache pod Word Pressa

Skupię się tutaj jedynie na Brotli i Redis. Reszta opcji to już twoje własne preferencje.

W opcjach odpowiedzialnych za miejsce i sposób przechowywania cache, zaznacz Redis, wszędzie tam gdzie jest to możliwe. W odpowiednich miejscach zaznacz też Brotli i odznacz Gzip.

Jeżeli, któraś z tych opcji jest wygaszona i niemożliwe jest jej zaznaczenie, to znaczy że prawdopodobnie, któraś z tych usług nie została zainstalowana poprawnie na twoim serwerze. Sprawdź więc krok po kroku, czy wszystko wykonałeś poprawnie jak w niniejszym opisie. Jeżeli wszystko jest ok, a włączenie Redis i Brotli nie powoduje problemów ze stroną, przejdź do uruchomienia usług Cloud Flare.

W pierwszej kolejności załaduj jednak rozszerzenie Cloud Flare, do wtyczki W3 Total Cache. Dostępne jest ono w zakładce Extensions tej wtyczki. Pozwoli ci to na zmianę najważniejszych opcji CF z poziomu panelu Word Pressa. Będziesz miał tam także dostęp do statystyk Cloud Flare. Rozszerzenie to, będziesz musiał autoryzować podając klucz API w jego konfiguracji. Dostępny on jest po zalogowaniu do Cloud Flare w zakładce MyProfiles/Api Tokens – Global API Key.

2 Comments

  1. 1. Wszystko fajnie, co jednak jeżeli posiadam serwer Nginx i nie chciałbym go zmieniać na Apache?

    2. Co jeśli posiadam stronę, która nie obsługuje opisanych przez pana programów i nie można znaleźć do skryptu, na jakim ona stoi dodatkowych modułów, które by włączyły mi ten kesz Redis i kompresję brotli ?

    3. Jak to będzie działało ewentualnie na dwurdzeniowym dedyku z 8mb ram i 1tb dyskiem twardym ale ide, nie ssd?

    4. Czy jest w ogóle sens stosowania tych programów i jak to ewentualnie skonfigurować pod mój serwer?

    5, Czy da się pagespeed uruchomić z Nginx?

    1. 1. Brotli i Redis działają jako moduły dla PHP, więc tylko jeśli pan PHP posiada na swoim serwerze to nie będzie problemów z uruchomieniem. Pod Nginx także da się uruchomić pagespeed.
      2. Jeżeli pana skrypt nie obsługuje brotli i Redis, nie można znaleźć wtyczek do niego z tym związanych. Można w ostateczności je spróbować uruchomić jako moduły Nginx lub też doinstalować Apache i skonfigurować Nginx jako serwer proxy, a pod Apachem uruchomić te moduły dla Nginx i Brotli. Taka konfiguracja Nginx+Apache na pana serwerze miała by sens.
      3. Konfiguracja serwera jest jak najbardziej ok (może poza dyskiem, który będzie wprowadzał większe opóźnienia niż przy SSD). Zasada konfiguracji redis, brotli, pagespeed, cloud flare jet taka sama. Także Apache jeśli zdecyduje się pan na jego instalację, a Nginx przestawić, aby pracował jako proxy.
      4. Tak ma to sens. To w dalszym ciągu jest niewielki serwer jak na dzisiejsze standardy. Co innego jak posiadałby pan kilku procesorową maszynę z np. 32gb lub więcej ram i kilka szybkich dysków ssd. Wtedy wskazana była by inna architektura zarówno konfiguracji samego serwera jak i konfiguracji i zastosowania innych programów-usług. Jak już przy tym jesteśmy, to w dużych serwerach lepiej sprawdzi się na przykład taki memached.
      5. Tak na Nginx da się uruchomić pagespeed. Na stronach Google jest napisane jak to zrobić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

+