Od czasów debiutu pierwszego serwera internetowego wiele się zmieniło. Dzisiaj wachlarz możliwości jest znacznie szerszy i ciekawszy.
Każdy projekt ma swoje specyficzne wymagania, lecz przez długi czas rynek serwerów internetowych o otwartym kodzie był zdominowany przez jednego gracza. Przez lata Apache był niemal jedynym wyborem, a obsługa dużego ruchu była wyzwaniem. Na szczęście sytuacja ewoluowała, a na horyzoncie pojawiły się nowe rozwiązania, dopasowane do zróżnicowanych potrzeb.
Przyjrzyjmy się zatem bliżej kilku czołowym i najbardziej popularnym serwerom internetowym o otwartym kodzie, dostępnym na rynku.
Apache
Jest on niemal synonimem sieci WWW i wciąż obsługuje znaczną część stron internetowych na świecie.
Dominacja Apache wynika z trzech kluczowych czynników: otwartej licencji, wczesnego wejścia na rynek (jego premiera miała miejsce w 1995 roku!) i prostoty wdrażania PHP. Ten ostatni aspekt był możliwy dzięki modułowi mod_php, który sprawił, że instalacja Apache była wystarczająca do rozpoczęcia programowania w PHP.
Co sprawia, że Apache jest tak wyjątkowy?
- Dostępność na różnorodnych platformach – Linux, Windows, MacOS i innych.
- Jest domyślnym serwerem dla wszystkich współdzielonych hostingów CPanel, co gwarantuje prostą konfigurację i modyfikację witryn.
- Bogata funkcjonalność, zapewniona przez obszerną kolekcję modułów. Niezależnie od specyfiki Twoich potrzeb, z pewnością znajdzie się odpowiedni moduł dla Apache.
- Możliwość konfiguracji na poziomie katalogów za pomocą plików .htaccess.
- Wsparcie dla HTTP/2, kompresji, plików statycznych i równoważenia obciążenia.
- Tryby MPM i FastCGI zapewniające wysoką współbieżność.
- Łatwość tworzenia skryptów przy użyciu Lua.
Czy Apache jest odpowiedni dla Ciebie?
W skrócie: tak. Był czas, gdy Nginx (którego omówimy w dalszej części) wybił się na pierwszy plan ze względu na swoją wydajność, jednak Apache nadrobił zaległości po wydaniu wersji 2.2. Niemniej jednak, jako wczesny gracz, Nginx wzbudził wiele uwagi, co sprawia, że Apache bywa (niesłusznie) krytykowany za swoje możliwości.
Nginx
Jeśli lubisz podążać za trendami i być na bieżąco z nowościami, z pewnością słyszałeś o Nginx (wymawianym jako „engine-x”, co jest genezą jego nazwy). Serwer ten został stworzony w 2002 roku przez rosyjskiego inżyniera, który miał dość trudności z pokonaniem ograniczeń ówczesnych rozwiązań. Jego celem było rozwiązanie problemu C10k (obsługi tysięcy jednoczesnych połączeń).
Pojawienie się Nginx wywołało spore zamieszanie, a wiele osób porzuciło Apache, nie oglądając się za siebie. Ten trend utrzymuje się do dzisiaj. Mimo że Apache dorównuje dziś Nginx pod względem możliwości, ten drugi oferował kilka innowacyjnych ulepszeń, które przyczyniły się do jego sukcesu.
- Asynchroniczna architektura pozwalająca na obsługę dużego obciążenia.
- Najlepsza w swojej klasie obsługa plików statycznych, równoważenia obciążenia i funkcji odwrotnego proxy.
- Buforowanie FastCGI.
- Wsparcie protokołów uwsgi, SCGI i innych serwerów z buforowaniem.
- Kompresja gzip, transformacja obrazów, zakresy bajtów, fragmenty odpowiedzi itp., w połączeniu ze strumieniowaniem FLV i MKV.
- Obsługa WebSockets, połączeń keep-alive i potokowych.
- Kontrola dostępu, przekierowania błędów itp.
Podsumowując, Nginx to potężne narzędzie z wieloma funkcjami, które dają mu przewagę nad konkurencją. Ponieważ firma, która go stworzyła, jest stabilna biznesowo, dla złożonych projektów dostępne jest płatne wsparcie i doradztwo, co może być przydatne dla niektórych użytkowników.
Czy Nginx jest dla Ciebie?
Jeśli cenisz sobie elastyczność w projektowaniu architektury aplikacji internetowych, Nginx będzie dla Ciebie świetnym wyborem. Umożliwia tworzenie złożonych, rozproszonych systemów z zaawansowanym buforowaniem, proxy i równoważeniem obciążenia, a także bezpośrednią obsługę plików statycznych z optymalizacjami.
Warto zaznaczyć, że Nginx w pełni obsługuje protokół HTTP/2.
Chcesz nauczyć się więcej o Nginx? Sprawdź ten kurs podstawowy.
Caddy
Jednym z najgorętszych, nowych frameworków, które zyskały popularność w społeczności open-source jest Caddy.
Można o nim myśleć jak o serwerze WWW zbliżonym do Nginx (podobna składnia itp.), lecz uproszczonym do granic możliwości. Przykładowo, integracja Let’s Encrypt dla SSL wymaga zaledwie trzech linijek konfiguracji.
Dlaczego Caddy przyciąga tak wiele uwagi?
- Domyślnie włączony protokół HTTPS. Nie musisz podejmować żadnych działań, aby zainstalować lub odnowić certyfikaty SSL.
- HTTP/2 jest traktowany priorytetowo.
- Domyślne rotowanie kluczy biletów sesji TLS, co zapewnia znacznie bezpieczniejsze zarządzanie połączeniami TLS, odporne na ataki typu Heartbleed.
- Brak zależności (kod binarny jest skompilowany przez Golang i nie zależy od bibliotek systemowych).
- Domyślna obsługa plików statycznych w bieżącym katalogu.
- Możliwość osadzenia – może być używany jako biblioteka w innych programach.
Czy Caddy jest dla Ciebie?
Jeżeli cenisz sobie prostotę i odstraszają Cię skomplikowane konfiguracje Apache i Nginx, Caddy będzie dla Ciebie odświeżającym rozwiązaniem. Warto jednak zaznaczyć, że Caddy sprawdza się najlepiej, gdy zadowalają Cię ustawienia domyślne. Jeśli na przykład chcesz korzystać z niestandardowego dostawcy SSL, przechowywać pliki statyczne w oddzielnym katalogu (co zdarza się bardzo często) itp., korzyści z Caddy mogą być ograniczone.
Możesz wypróbować Caddy na wirtualnych maszynach Kamatera już od 4 USD miesięcznie.
Lighthttpd
Jednym z aspektów, w których większość nowoczesnych serwerów internetowych zawodzi, jest zużycie zasobów. Lighthttpd został stworzony z myślą o minimalnym zużyciu zasobów w środowiskach o ograniczonej pamięci i mocy obliczeniowej.
Lighthttpd opiera się na asynchronicznym modelu obsługi żądań, co w dużej mierze przypomina sposób działania Nginx. Istnieje jednak pewien haczyk – Lighthttpd działa w jednym wątku, co oznacza, że nawet jeśli masz wydajniejszą maszynę, nie wykorzysta on pozostałych rdzeni procesora. Ponadto brakuje mu bardziej zaawansowanych funkcji Nginx, takich jak proxy SSL, HTTP/2 i inne.
Czy Lighthttpd jest dla Ciebie?
Lighthttpd to wydajny, jednowątkowy serwer WWW, który może bez problemu obsłużyć setki żądań na sekundę, nie obciążając przy tym zasobów systemowych. Poza tym, w porównaniu z alternatywami, nie ma zbyt wiele do zaoferowania. Zatem, jeśli nie potrzebujesz wielu zaawansowanych opcji – i naprawdę zależy Ci na oszczędności zasobów – Lighthttpd może być wart rozważenia.
Monkey Server
Pomimo nieco dziwnej nazwy, Monkey jest interesującym projektem, który jest aktywnie rozwijany i wspierany.
Główną zaletą Monkey Servera jest wsparcie dla platform wbudowanych. Serwer wymaga samodzielnej kompilacji, lecz dzięki temu można pozbyć się niepotrzebnych dodatków i otrzymać lekki, szybki serwer WWW.
- Dedykowany głównie systemowi Linux, lecz obsługiwany również w systemie MacOS.
- Pełne wsparcie dla procesorów opartych na architekturze ARM.
- Świetnie sprawdza się na Androidzie, Raspberry Pi i innych platformach wbudowanych.
- Minimalny rozmiar (100 KB bez wtyczek).
- Obsługa IPv6 i TLS.
- Współpraca z CGI i FastCGI.
- Uwierzytelnianie podstawowe, zasady bezpieczeństwa itp.
Czy Monkey Server jest dla Ciebie?
Jeśli Twoim celem są urządzenia wbudowane, Monkey Server będzie doskonałym wyborem. Niemniej jednak, równie dobrze sprawdzi się na architekturach x86 i x86-64 i może być wykorzystany do obsługi aplikacji na dużą skalę na potężnych maszynach. Warto również wspomnieć, że ma bardziej aktywną i żywą społeczność niż inne alternatywne serwery internetowe, dzięki czemu zawsze znajdziesz pomoc w razie problemów.
OpenLiteSpeed
OpenLiteSpeed to odmiana open source serwera internetowego dla przedsiębiorstw oferowanego przez LiteSpeed Technologies.
Istnieje wiele powodów, dla których warto wybrać OpenLiteSpeed:
- Kompatybilność z mod_rewrite Apache, co znacznie ułatwia migrację w przypadku posiadania istniejących plików konfiguracyjnych Apache.
- Architektura sterowana zdarzeniami (w stylu Nginx), zapewniająca wysoką wydajność.
- Interfejs administratora oparty na GUI, ułatwiający konfigurację.
- Natywne SAPI dla PHP, przekładające się na wyższą wydajność.
- Domyślne optymalizacje buforowania i Google PageSpeedInsights.
Czy OpenLiteSpeed jest dla Ciebie?
OpenLiteSpeed jest szczególnie polecany dla witryn opartych na WordPress, ponieważ optymalizacje stron są już wbudowane w serwer. Ponadto, dzięki dostrojeniu pod kątem wydajności PHP, kody i projekty oparte na PHP mogą na nim bardzo zyskać.
Cherokee
Cherokee to projekt, który narodził się z osobistej potrzeby programisty i przerodził się w całkiem solidną platformę serwera WWW. Mimo iż nie oferuje tak zaawansowanych funkcji jak Nginx, stanowi prostą, przyjazną i wydajną alternatywę dla głównych serwerów internetowych.
Największą zaletą Cherokee jest prostota – konfiguracja serwera nie wymaga korzystania z wiersza poleceń. Przyjazny interfejs sieciowy jest dostępny w pakiecie i z pewnością przypadnie do gustu osobom preferującym konfigurację typu „wskaż i kliknij”.
Źródło: Linode
Mimo że projekt Cherokee nie jest już aktywnie rozwijany, nadal jest dobrą opcją dla większości codziennych projektów. Warto go wypróbować!
Podsumowanie
Życie bez serwerów internetowych byłoby trudne, na szczęście mamy teraz spory wybór. Jaki jest Twój ulubiony serwer internetowy o otwartym kodzie źródłowym? Jeśli uważasz, że pominąłem jakiś ważny element na liście, daj mi znać w komentarzach, a chętnie go dodam!
newsblog.pl