Serwer WWW Apache, Nginx czy LiteSpeed - czym się różnią, jak obsługują .htaccess, PHP i cache, który wybrać i co to oznacza dla Twojej strony na hostingu.
Autor: McProdukt · Opublikowano: · Aktualizacja:
Apache, Nginx i LiteSpeed to programy serwera WWW - przyjmują żądania przeglądarek i odsyłają strony, a różnią się architekturą, obsługą pliku .htaccess i wbudowanym cache. Apache jest bardzo elastyczny i czyta .htaccess w każdym katalogu, Nginx jest lekki i często stoi przed innymi serwerami jako reverse proxy, a LiteSpeed łączy zgodność z Apache z własnym cache LSCache. Dla właściciela strony różnice wychodzą głównie przy przekierowaniach, cache i przeprowadzce na inny hosting - poniżej wyjaśniamy, w czym dokładnie.
Serwer WWW odbiera żądania HTTP i HTTPS, sam wysyła gotowe pliki (obrazy, CSS, JavaScript), a żądania stron dynamicznych przekazuje do PHP lub innej aplikacji i odsyła przeglądarce wynik. Nie myl go z „serwerem" jako komputerem - na jednej maszynie działają zwykle serwer WWW, serwer poczty, baza danych i inne usługi.
Poza samym wysyłaniem stron serwer WWW odpowiada też za:
Apache HTTP Server to otwartoźródłowy serwer WWW zbudowany z modułów, które włącza się według potrzeb, np. mod_rewrite do przepisywania adresów. Jego znakiem rozpoznawczym jest plik .htaccess - konfiguracja zapisana w katalogu strony, która obowiązuje w tym katalogu i wszystkich podkatalogach. Dzięki temu na hostingu współdzielonym sam ustawisz przekierowania czy reguły adresów, bez dostępu do głównej konfiguracji serwera.
Ta wygoda ma swoją cenę. Dokumentacja Apache wprost zaleca, żeby przy dostępie do głównej konfiguracji nie używać .htaccess: gdy te pliki są dozwolone, serwer przy każdym żądaniu szuka ich we wszystkich katalogach na ścieżce do pliku i wczytuje je od nowa. PHP Apache uruchamia przez własny moduł albo przekazuje do osobnego procesu PHP-FPM. Jak pisać reguły, pokazujemy w tekście .htaccess w praktyce.
Nginx to lekki serwer WWW, który równie często pracuje jako reverse proxy - pośrednik przyjmujący ruch i przekazujący go do innych serwerów lub aplikacji. Jego dokumentacja opisuje go jako serwer HTTP, reverse proxy, cache treści i load balancer w jednym. Działa w modelu jednego procesu głównego i kilku procesów roboczych, które korzystają z mechanizmów zdarzeń systemu, np. epoll w Linuksie - według nginx.org 10 000 nieaktywnych połączeń keep-alive zajmuje ok. 2,5 MB pamięci.
Najważniejsza różnica dla właściciela strony: Nginx nie czyta plików .htaccess. Cała konfiguracja, łącznie z przekierowaniami, siedzi w plikach serwera, więc reguły z Apache trzeba przepisać na jego składnię - dokumentacja nginx pokazuje na przykładach, jak zamienić typowe reguły z .htaccess na bloki server i location. PHP Nginx przekazuje do zewnętrznego procesu przez FastCGI, najczęściej do PHP-FPM.
LiteSpeed Web Server (wersja Enterprise) to komercyjny serwer, który producent opisuje jako pełny zamiennik Apache: rozumie jego konfigurację i pliki .htaccess, więc może go zastąpić bez zmian w stronach. Drobne różnice jednak istnieją - na przykład flaga [L] w regułach przepisywania kończy w LiteSpeed przetwarzanie reguł całkowicie, a w Apache tylko w bieżącym przebiegu.
OpenLiteSpeed to darmowa, otwartoźródłowa wersja z własnym formatem konfiguracji. Z plików .htaccess wykonuje reguły przepisywania adresów w składni mod_rewrite, a dyrektywy, których nie obsługuje, według dokumentacji po prostu pomija. PHP obie wersje uruchamiają przez własny interfejs LSAPI.
Obie mają wbudowany cache stron LSCache, który producent przedstawia jako odpowiednik mod_cache z Apache i Varnisha. W WordPressie obsługuje go wtyczka LiteSpeed Cache - pełny cache stron działa w niej tylko z serwerem LiteSpeed (lub z CDN tego producenta), a na innych serwerach wtyczka daje wyłącznie funkcje optymalizacji. Jak ją ustawić, opisujemy w poradniku LiteSpeed Cache - konfiguracja krok po kroku.
| Cecha | Apache | Nginx | LiteSpeed Enterprise | OpenLiteSpeed |
|---|---|---|---|---|
| Licencja | otwarta, bezpłatna | otwarta, bezpłatna | komercyjna | otwarta, bezpłatna |
| Pliki .htaccess | pełna obsługa | brak obsługi | zgodność z Apache | reguły przepisywania adresów |
| Obsługa PHP | moduł lub PHP-FPM | PHP-FPM przez FastCGI | LSAPI | LSAPI |
| Cache stron | moduły (np. mod_cache) lub wtyczki CMS | wbudowany cache proxy i FastCGI | LSCache | LSCache |
| Typowe zastosowanie | hosting współdzielony, serwery z wieloma stronami | reverse proxy, serwisy o dużym ruchu, aplikacje | hosting współdzielony zamiast Apache | VPS i hosting z własną konfiguracją serwera |
Nie ma jednej odpowiedzi - o szybkości strony częściej decyduje konfiguracja i cache niż sama nazwa serwera. Przy stronach na PHP, takich jak WordPress czy PrestaShop, największą różnicę robi cache całych stron: gotowa kopia wysłana bez uruchamiania PHP i bazy danych zwykle daje więcej niż zmiana samego serwera. Serwer bez cache, który przy każdym wejściu składa stronę od zera, będzie wolny niezależnie od nazwy.
Architektura ma znaczenie przy dużej liczbie jednoczesnych połączeń - tu serwery oparte na zdarzeniach, jak Nginx, oszczędzają pamięć. Jak zmierzyć i skrócić czas odpowiedzi, opisujemy w tekście TTFB - czas odpowiedzi serwera.
Zajrzyj do nagłówka odpowiedzi Server. W terminalu wpisz curl -I https://twojafirma.pl albo w przeglądarce otwórz narzędzia deweloperskie (F12), przejdź do karty Sieć i kliknij pierwsze żądanie. Zobaczysz np. Server: Apache, Server: nginx albo Server: LiteSpeed. Nagłówek bywa ukryty albo pokazuje usługę pośredniczącą, np. CDN - wtedy prawdziwy serwer stoi za nią.
Na hostingu McProdukt działa OpenLiteSpeed z pamięcią podręczną LSCache, na dyskach NVMe i z dostępnym Redisem. W praktyce oznacza to, że:
RewriteRule i Redirect, a dyrektywy Require, Deny from, Allow from i hasła z .htaccess nie są obsługiwane,Pakiety pod WordPressa znajdziesz na stronie hostingu WordPress, a pozostałe - w ofercie hostingu WWW. O dyskach i innych technologiach serwera piszemy w tekście NVMe i LiteSpeed - technologie hostingu.
Nie. Nginx nie czyta .htaccess - reguły trzeba przenieść do konfiguracji serwera, co na hostingu zwykle może zrobić tylko administrator.
LiteSpeed Enterprise tak - czyta konfigurację Apache i pliki .htaccess, z drobnymi różnicami w regułach przepisywania. OpenLiteSpeed z .htaccess wykonuje przede wszystkim reguły przepisywania adresów.
Częściowo. Bez serwera LiteSpeed (lub CDN tego producenta) wtyczka daje tylko funkcje optymalizacji, bez cache całych stron.
OpenLiteSpeed jest darmowy i otwartoźródłowy, ma własny format konfiguracji i z .htaccess wykonuje reguły przepisywania adresów. LiteSpeed Enterprise jest płatny i rozumie konfigurację Apache, więc zastępuje go bez zmian w stronach.
WordPress działa na każdym z nich. Na hostingu liczy się przede wszystkim cache stron i aktualne PHP - na serwerze LiteSpeed cache obsłuży wtyczka LiteSpeed Cache, a na Apache i Nginx inne wtyczki cache lub konfiguracja serwera.
Wszystkie poradniki z kategorii: Szybkość i wydajność