Definicja
NGINX (wymawiane „engine-x”) to wysokowydajny, otwartoźródłowy serwer WWW oraz reverse proxy, który obsługuje znaczną część współczesnego internetu. Serwuje pliki statyczne bezpośrednio, przekazuje ruch do backendów aplikacyjnych, takich jak PHP-FPM, Node.js czy serwery Python WSGI/ASGI, terminuje SSL/TLS, równoważy obciążenie między wieloma serwerami docelowymi (upstream) oraz buforuje odpowiedzi HTTP, aby zmniejszyć obciążenie backendu. NGINX jest domyślnym serwerem WWW na większości hostów VPS oraz dedykowanych serwerach z systemem Linux, wyprzedzając Apache jako standard dla witryn o wysokim ruchu dzięki swojej asynchronicznej, zdarzeniowej architekturze: niewielka, stała liczba procesów roboczych obsługuje tysiące połączeń każdy za pomocą nieblokującego wejścia/wyjścia, w przeciwieństwie do tradycyjnego modelu Apache, w którym jeden proces lub wątek przypada na jedno połączenie, co przy dużym obciążeniu zużywa znacznie więcej pamięci. Ma to największe znaczenie powyżej kilkuset jednoczesnych użytkowników; w przypadku niewielkiej strony wizytówkowej różnica jest praktycznie niezauważalna. Większość zarządzanych hostingów WordPress wykorzystuje NGINX, często w połączeniu z pamięcią podręczną FastCGI, choć konfiguracja oparta na plikach .htaccess nie jest wówczas obsługiwana.
Jak to działa
NGINX jest konfigurowany za pomocą hierarchicznego pliku tekstowego (nginx.conf), który definiuje serwery, lokalizacje, serwery docelowe (upstream) oraz pamięci podręczne. Może pełnić funkcję czystego serwera WWW, czystego reverse proxy lub obu jednocześnie. NGINX Plus to płatna, komercyjna wersja z dodatkowymi funkcjami, natomiast otwartoźródłowy NGINX jest wersją faktycznie wykorzystywaną przez większość witryn.
Dlaczego to ma znaczenie
W przypadku treści statycznych oraz reverse proxy NGINX jest szybszy i bardziej lekki niż Apache. Dla witryn o wysokim ruchu różnica ma istotne znaczenie: NGINX potrafi obsłużyć dziesiątki tysięcy jednoczesnych połączeń na umiarkowanie wydajnym sprzęcie. Większość produkcyjnych środowisk wykorzystuje obecnie NGINX przed serwerem aplikacyjnym, pozostawiając Apache do zastosowań wymagających kompatybilności wstecznej.