Co to jest Nginx?

Autor: Opublikowano

W skrócie: Nginx to oprogramowanie serwerowe, które odbiera żądania przeglądarek i dostarcza pliki strony albo przekazuje ruch do aplikacji. Może też obsługiwać szyfrowane połączenia HTTPS, rozdzielać ruch między serwery i przechowywać kopie odpowiedzi w pamięci podręcznej. Na hostingu zarządzanym zwykle zajmuje się nim dostawca; na własnym serwerze jego konfiguracja może należeć do ciebie.

Jaką rolę pełni Nginx przy otwieraniu strony?

Nginx, wymawiany „engine-x”, jest przede wszystkim serwerem HTTP, czyli programem obsługującym komunikację używaną do pobierania stron internetowych. Nie należy mylić go z fizycznym serwerem lub maszyną wirtualną: Nginx działa na takim komputerze obok innych programów.

Gdy wpisujesz adres witryny, DNS — system przypisujący nazwy domen do adresów sieciowych — pomaga przeglądarce znaleźć serwer. Przeglądarka nawiązuje połączenie i wysyła żądanie, na przykład o stronę główną. Jeżeli ruch trafia do Nginx, program wybiera sposób obsługi na podstawie konfiguracji, między innymi nazwy domeny i ścieżki w adresie.

Nginx może bezpośrednio zwrócić pliki statyczne, czyli zapisane wcześniej zasoby: dokumenty HTML, arkusze CSS, skrypty JavaScript czy obrazy. Nie jest natomiast systemem do zarządzania treścią ani bazą danych. Sam nie tworzy panelu sklepu i nie oblicza zawartości koszyka — to zadania aplikacji.

Reverse proxy, HTTPS i pozostałe zastosowania

Drugą ważną funkcją Nginx jest reverse proxy, czyli pośrednik przyjmujący żądania użytkowników w imieniu aplikacji. Przeglądarka łączy się z Nginx, a ten przekazuje żądanie do odpowiedniego procesu lub serwera i odsyła otrzymaną odpowiedź. Dzięki temu aplikacja nie musi bezpośrednio przyjmować połączeń z internetu.

Typowe zastosowania obejmują:

Nginx wykorzystuje architekturę zdarzeniową: proces roboczy może obsługiwać wiele połączeń, reagując na gotowość danych do odczytu lub zapisu. To pomaga efektywnie obsługiwać równoczesny ruch, ale nie oznacza, że samo zainstalowanie programu przyspieszy każdą witrynę. Powolne zapytania do bazy danych nadal mogą opóźniać odpowiedzi.

Przykład: sklep i aplikacja za Nginx

Wyobraź sobie sklep, w którym Nginx obsługuje domenę sklep.example. Żądanie o zdjęcie produktu może zakończyć się odczytem pliku z dysku. Żądanie o koszyk trafia natomiast do aplikacji, która sprawdza sesję użytkownika, pobiera dane i przygotowuje odpowiedź.

W przypadku WordPressa kod PHP zwykle wykonuje PHP-FPM, osobny program zarządzający procesami PHP. Nginx przekazuje mu odpowiednie żądania przez protokół FastCGI. Przy aplikacji napisanej w Node.js lub Pythonie może przekazywać ruch przez HTTP do jej serwera działającego na lokalnym porcie.

Ten podział pomaga diagnozować problemy. Jeśli obrazy się wyświetlają, ale koszyk zwraca błąd, Nginx może działać prawidłowo, a awaria dotyczyć aplikacji. Błąd 502 Bad Gateway często oznacza problem z uzyskaniem prawidłowej odpowiedzi od usługi stojącej za pośrednikiem; jego przyczynę należy ustalić z logów, czyli zapisów działania Nginx i aplikacji.

Nie należy przy tym bezrefleksyjnie włączać cache dla całego sklepu. Koszyk, panel klienta i odpowiedzi zawierające dane osobowe wymagają odpowiedniego wyłączenia z pamięci podręcznej lub precyzyjnych reguł izolacji.

Nginx czy Apache — co ma znaczenie przy wyborze?

Apache HTTP Server to inny popularny serwer HTTP. Oba rozwiązania mogą obsługiwać strony i pośredniczyć w komunikacji z aplikacjami. Wybór nie sprowadza się do zasady „Nginx jest szybki, Apache jest wolny”: znaczenie mają rodzaj ruchu, konfiguracja, aplikacja i doświadczenie administratora.

Praktyczna różnica dotyczy plików .htaccess, które w Apache mogą zawierać lokalne reguły, na przykład przekierowania. Nginx ich nie odczytuje. Przy przenoszeniu witryny trzeba więc przenieść potrzebne reguły do konfiguracji Nginx, a nie tylko skopiować pliki strony.

Nginx i Apache mogą również działać razem: pierwszy przyjmuje ruch, a drugi obsługuje część żądań. Dlatego sama informacja „hosting korzysta z Nginx” nie opisuje całej konfiguracji ani nie gwarantuje określonej wydajności.

Czy musisz samodzielnie konfigurować Nginx?

Na hostingu współdzielonym lub zarządzanym zapytaj dostawcę, kto odpowiada za HTTPS, przekierowania, cache i reguły wymagane przez aplikację. Możliwe, że wszystkie potrzebne ustawienia wykonasz w panelu bez dostępu do konfiguracji serwera.

Na własnym VPS, czyli wirtualnym serwerze, odpowiedzialność zwykle obejmuje instalację, aktualizacje, certyfikaty i diagnostykę. Przed zmianą konfiguracji zachowaj jej działającą kopię. Polecenie nginx -t sprawdza poprawność składni i dostępność wskazanych plików; nie potwierdza jednak, że aplikacja działa poprawnie ani że reguły są bezpieczne.

Po udanym teście przeładuj konfigurację, a następnie sprawdź stronę, logowanie, przekierowania i logi błędów. Dokładne ścieżki plików oraz polecenia zarządzania usługą potwierdź w dokumentacji Nginx i używanej dystrybucji systemu — zależą od sposobu instalacji.

Zobacz też: Co to jest 2FA?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.