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

Optymalizacja serwera VPS i optymalizacja strony internetowej

Optymalizacja serwera Apache

Optymalizacja serwera VPS, to także optymalizacja serwera serwującego twoje strony internetowe. W związku z tym powyłączaj wszelkie zbędne moduły serwera Apache. Kolejnym krokiem będzie zmiana sposobu pracy serwera, czyli zmiana modułu Apache MPM-Prefork na jego nowszy i bardziej wydajny odpowiednik. Standardowo uruchomiony jest zawsze Prefork, zmień go na Event, ewentualnie Worker.

Ze względów bezpieczeństwa, po takiej zmianie nie będziesz mógł korzystać z modułu MOD-PHP, stąd najlepiej jakby twoja strona zaczęła używać PHP-FPM, jeśli jeszcze tego nie robi. PHP-FPM jest polecany jako najszybszy i najbardziej wydajny do współpracy z PHP i Apache. Mod-PHP nie wyłączy się jednak automatycznie podczas próby zmiany modułów MPM, więc będziesz musiał wyłączyć go najpierw ręcznie, następnie wyłączyć MPM-Prefork i dopiero włączyć MPM-EVENT.

W katalogu /etc/apache2/mods-enabled na twoim serwerze VPS znajduje się plik konfiguracyjny o nazwie mpm_event.conf (lub worker jeżeli z niego korzystasz). Otwórz go do edycji swoim ulubionym edytorem i zmień kilka opcji na:

StartServers 3
MinSpareThreads 15
MaxSpareThreads 45
ThreadLimit 50
ThreadsPerChild 15
MaxRequestWorkers 400
MaxConnectionsPerChild    0

Zapisz i zamknij plik oraz zrestartuj server Apache

$ sudo service apache2 restart

Jest to konfiguracja niejako wyjściowa, do dalszej optymalizacji serwera. Sprawdź więc, jak obecnie zachowuje się twój serwer. Jeśli dalej “zamula” i tzw. load jest w dalszym ciągu zbyt wysoki, zmniejsz podane parametry i powtarzaj tą procedurę, aż do skutku. Uzyskania zadowalających rezultatów.

Jeśli natomiast zauważysz, że serwer działa dobrze ale pozostaje sporo niewykorzystanych zasobów, możesz te parametry zwiększyć.

Uwaga: Zwiększenie lub zmniejszenie powyższych parametrów, należy przeprowadzić już po uruchomieniu poniżej przedstawionych usług, ale jeszcze przed podpięciem strony do Cloud Flare.

Zaktualizujmy teraz nasz serwer Apache oraz interpreter PHP do najnowszej wersji, wykorzystując do tego dodatkowe repozytoria Ondřej Surý’s PPA. Sprawdź tylko, czy twoją stronę będzie w stanie obsłużyć najnowsza wersja PHP. W przypadku popularnych skryptów nie powinno być problemu.

W konsoli swojego serwera wpisz

$ sudo add-apt-repository ppa:ondrej/php

oraz

$ sudo add-apt-repository ppa:ondrej/apache2

następnie

$ sudo apt-get update

oraz

$ sudo apt-get dist-upgrade

Po tej operacji zarówno serwer Apache jak i interpreter PHP zostaną zaktualizowane do ich najnowszej wersji. Na dzień dzisiejszy w przypadku Apache jest to wersja 2.4.41, a w przypadku PHP zostanie zaktualizowana wersja PHP 7.2, którą prawdopodobnie posiadasz już na swoim serwerze i doinstalowana zostanie najnowsza wersja PHP 7.3. Od tego momentu warto, abyś zmienił konfigurację dla swojej strony, by korzystała ona z wersji PHP 7.3.

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 *

+