Serwer WWW - Apache, Nginx czy LiteSpeed? Różnice

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.

Co robi serwer WWW?

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:

  • szyfrowanie - obsługę certyfikatu SSL i połączeń HTTPS,
  • przekierowania - np. z http na https albo ze starych adresów na nowe,
  • kompresję - zmniejszanie plików przed wysłaniem, o czym piszemy w tekście Gzip i Brotli - kompresja strony,
  • cache - wysyłanie zapisanych kopii stron bez uruchamiania PHP,
  • logi - zapis każdego żądania, przydatny przy szukaniu błędów i ataków.

Czym jest Apache?

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.

Czym jest Nginx?

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.

Czym są LiteSpeed i OpenLiteSpeed?

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.

Czym różnią się Apache, Nginx i LiteSpeed?

CechaApacheNginxLiteSpeed EnterpriseOpenLiteSpeed
Licencjaotwarta, bezpłatnaotwarta, bezpłatnakomercyjnaotwarta, bezpłatna
Pliki .htaccesspełna obsługabrak obsługizgodność z Apachereguły przepisywania adresów
Obsługa PHPmoduł lub PHP-FPMPHP-FPM przez FastCGILSAPILSAPI
Cache stronmoduły (np. mod_cache) lub wtyczki CMSwbudowany cache proxy i FastCGILSCacheLSCache
Typowe zastosowaniehosting współdzielony, serwery z wieloma stronamireverse proxy, serwisy o dużym ruchu, aplikacjehosting współdzielony zamiast ApacheVPS i hosting z własną konfiguracją serwera

Który serwer WWW jest najszybszy?

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.

Co wybór serwera WWW oznacza dla Twojej strony?

  • Przekierowania - na Apache i LiteSpeed ustawisz je w .htaccess, na Nginx musi to zrobić administrator w konfiguracji serwera. W WordPressie niezależnie od serwera zadziała wtyczka do przekierowań.
  • Cache - wtyczkę dobierasz do serwera: LiteSpeed Cache wykorzysta pełnię możliwości na LiteSpeedzie, a na Apache i Nginx sprawdzą się inne wtyczki cache albo cache po stronie serwera.
  • Zabezpieczenia z .htaccess - blokady katalogów czy hasła ustawione w .htaccess działają na Apache, ale po przeprowadzce na Nginx albo OpenLiteSpeed mogą przestać działać bez żadnego komunikatu, bo serwer po prostu pominie te dyrektywy. Po migracji sprawdź je ręcznie.
  • Migracja z Apache - przed przeprowadzką przejrzyj .htaccess i spisz reguły, na których Ci zależy: przekierowania, wymuszanie HTTPS, blokady. Ustawienia PHP, takie jak limit pamięci czy czas wykonania, na nowym serwerze często zmienia się w panelu, a nie w .htaccess - więcej w tekście php.ini na hostingu.

Jak sprawdzić, na jakim serwerze WWW działa strona?

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

Jaki serwer WWW działa w McProdukt?

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:

  • z plików .htaccess działają reguły RewriteRule i Redirect, a dyrektywy Require, Deny from, Allow from i hasła z .htaccess nie są obsługiwane,
  • przekierowanie na HTTPS i wybór wersji z www lub bez ustawiasz w ustawieniach domeny w DirectAdmin, a stare adresy w WordPressie najwygodniej przekierujesz wtyczką Redirection,
  • listowanie katalogów jest wyłączone, a serwer sam ustawia 30-dniowy czas ważności cache przeglądarki dla obrazów, CSS, JS i fontów,
  • do cache stron w WordPressie wystarczy wtyczka LiteSpeed Cache.

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.

Najczęściej zadawane pytania

Czy Nginx obsługuje pliki .htaccess?

Nie. Nginx nie czyta .htaccess - reguły trzeba przenieść do konfiguracji serwera, co na hostingu zwykle może zrobić tylko administrator.

Czy LiteSpeed jest zgodny z Apache?

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.

Czy wtyczka LiteSpeed Cache działa na Apache?

Częściowo. Bez serwera LiteSpeed (lub CDN tego producenta) wtyczka daje tylko funkcje optymalizacji, bez cache całych stron.

Czym różni się OpenLiteSpeed od LiteSpeed Enterprise?

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.

Który serwer WWW wybrać do WordPressa?

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.

Powiązane poradniki

Wszystkie poradniki z kategorii: Szybkość i wydajność

Powiązane usługi McProdukt

Zobacz również