Optymalizacja serwera VPS i optymalizacja strony internetowej

Prawidłowa optymalizacja serwera VPS, na którym hostujemy naszą stronę internetową oraz optymalizacja strony internetowej pod kątem zwiększenia ich szybkości i zmniejszenia obciążenia, to kluczowe elementy, dzięki którym internauci mogą przeglądać nasz serwis bez większych problemów.

Metod optymalizacji serwera VPS jak i stron internetowych jest wiele, jest też wiele narzędzi służących do tego. W niniejszym artykule skupię się na optymalizacji niewielkiego serwera VPS jak na dzisiejsze standardy, posiadającego 4GB ram, 1 rdzeń procesora 2GHz, 40GB dysk SSD i system Linuks Ubuntu.

Oczywiście, sposoby i metody przedstawione w niniejszym artykule można wykorzystać także do optymalizacji niewielkiego serwera dedykowanego. Dlaczego niewielkiego ? O tym za chwilę. Co do samego serwera VPS, to dobrze jakby oparty on był o wirtualizację KVM oraz posiadał niewspółdzielony dysk SSD, gdyż taka konfiguracja właśnie stwarza najmniej problemów.

Jak wspomniałem, metod i sposobów optymalizacji stron internetowych oraz optymalizacji serwerów VPS jest wiele. Takie narzędzia jak serwery proxy Ngingx+Apache, Akceleratory typu Varnish, mechanizmy cachujące wykorzystujące pamięć naszego serwera jak Memcache itp. są świetne dla większych serwerów dedykowanych, gdyż ich uruchomienie paradoksalnie pochłania więcej cennych dla nas zasobów (pamięci ram, miejsca na serwerze, mocy procesora) i potencjalny zysk może być niewystarczający.

Co jednak, gdy posiadamy niewielki serwer VPS, na którym hostujemy prywatną stronę, która nie przynosi nam dochodów i nie chcemy wydawać więcej pieniędzy na lepszy serwer? W takim przypadku powinniśmy użyć bardziej wydajnych narzędzi dla takiej konfiguracji.

Serwer Apache, czy serwer Nginx ?

Panuje powszechna opinia, że serwer Nginx jest szybszy i pochłania mniej zasobów niż jego konkurent Apache. Jest to stwierdzenie prawdziwe, więc najczęściej optymalizacja serwera VPS zaczyna się od niego. Nie znaczy to jednak, że wybór tylko serwera Nginx będzie słuszny, bo co jeśli z różnych względów będziemy potrzebowali jednak serwera Apache ?

Względy te mogą być różne jak chociażby posiadanie jakiegoś modułu, którego nie znajdziemy dla Nginx, wyniknie niezbędna potrzeba posiadania dostępu do .htaccess, zaistnieje okoliczność współpracy skryptu na jakim zbudowaliśmy naszą stronę lub jego pluginów jedynie z serwerem Apache itp.

W takiej sytuacji oczywiście z powodzeniem możemy skorzystać z serwera Apache. Nie jest to zły serwer i przy odpowiedniej jego konfiguracji i współpracy z usługami zewnętrznymi może być niemalże tak wydajny jak Nginx.

Optymalizacja serwera VPS. Apache + Brotli + Redis + Google Pagespeed + Cloud Flare

Czym jest Apache już wiesz, więc nie będę się więcej rozpisywał na temat jego przeznaczenia i skupię się na przedstawieniu pozostałych z wymienionych usług.

Brotli jest programem, którego przeznaczeniem podobnie jak gzip, jest kompresja danych wysyłanych przez serwer do przeglądarki internetowej internauty. Celem tego jest skrócenie czasu otwarcia strony.

Redis jest serwerem cachującym strony w pamięci komputera, podobnie jak to robi Memcached. Działa on na innym porcie niż Memcached, więc istnieje możliwość działania tych dwóch usług jednocześnie obok siebie.

Pagespeed, to narzędzie od Google, a właściwie zestaw narzędzi, dzięki którym w sposób automatyczny możesz przyspieszyć strony internetowe hostowane na swoim serwerze.

Cloud Flare to serwer CDN (po szczegóły odsyłam do internetu) ale nie tylko, gdyż posiada także szereg narzędzi mających na celu odciążyć twój serwer oraz przyspieszyć działanie twojej strony internetowej. Posiada też możliwość wygenerowania darmowego, podpisanego cyfrowo i w pełni funkcjonalnego certyfikatu SSL dla twojej strony internetowej.

Brotli vs Gzip

Pewnie się zastanawiasz, co takiego szczególnego posiada Brotli, że proponuję ci zastąpienie nim bardziej popularnego i niemalże wszędzie stosowanego gzip, jeśli pełnią one taką samą funkcję.

Stwierdzenie to jest bardzo ogólne, gdyż są to dwa różne programy i tym samym posiadają one różne mechanizmy kompresji. Jak wykazały moje testy, Brotli lepiej kompresuje strony niż gzip, a tym samym mniej danych jest wysyłanych do przeglądarki internauty, przy podobnym obciążeniu serwera. Dodatkowo jest szybszy, tzn. daje wrażenie, że strona działa szybciej. Tak pokazują zarówno wszelkie testy robione narzędziami do badania szybkości strony, jak też i wrażenia osobiste odwiedzających stronę.

2 komentarze do “Optymalizacja serwera VPS i optymalizacja strony internetowej

  1. administratorlinuxa

    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. Grzegorz

      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 *