GINX (wymawiane jako "engine-ex") to serwer HTTP i reverse proxy, który jest również wykorzystywany jako serwer poczty e-mail (IMAP/POP3), serwer proxy oraz serwer do równoważenia obciążenia. NGINX, podobnie jak Apache HTTP Server, jest darmowy i ma otwarty kod źródłowy.
Kluczowe Informacje o NGINX
1. Przeznaczenie
NGINX jest wszechstronnym narzędziem do obsługi różnych zadań w zakresie serwerowania treści w sieci, takich jak:
Serwowanie statycznych plików: HTML, CSS, JavaScript, obrazy.
Serwer reverse proxy: Przekierowanie ruchu HTTP i HTTPS do serwerów aplikacji.
Równoważenie obciążenia: Rozkładanie ruchu na wiele serwerów, aby zwiększyć skalowalność i dostępność.
Serwer e-mail: Obsługa protokołów IMAP, POP3 i SMTP.
2. Historia
Powstanie: NGINX został stworzony przez Igora Sysoeva, a pierwszy publiczny wydanie miało miejsce w 2004 roku. Celem było stworzenie wydajnego serwera, który mógłby lepiej obsługiwać dużą ilość równoczesnych połączeń niż dostępne wtedy serwery.
Rozwój: NGINX zyskał popularność dzięki swojej wydajności i niskim wymaganiom systemowym. Jest szczególnie ceniony za szybkość i efektywne zarządzanie zasobami.
3. Cechy
Asynchroniczna architektura: W odróżnieniu od Apache, NGINX wykorzystuje asynchroniczny model obsługi połączeń, co pozwala na bardziej efektywne zarządzanie dużą liczbą równoczesnych połączeń.
Modularność: Obsługuje moduły do rozszerzania funkcjonalności, jednak w bardziej ograniczonym zakresie niż Apache.
Obsługa protokołów: HTTP/1.1, HTTP/2, HTTP/3, TCP/UDP, IMAP, POP3.
Równoważenie obciążenia: Wbudowane funkcje do rozdzielania ruchu między serwerami backendowymi, obsługuje różne algorytmy, takie jak round-robin, least connections.
Proxying: Obsługuje zarówno HTTP, jak i HTTPS reverse proxying, w tym buforowanie odpowiedzi.
4. Bezpieczeństwo
Certyfikaty SSL/TLS: Obsługuje SSL/TLS do szyfrowania połączeń, integruje się z narzędziami do zarządzania certyfikatami jak Let's Encrypt.
Ochrona przed atakami: Możliwość konfigurowania zabezpieczeń przeciwko różnym typom ataków, jak DDoS, oraz blokowania nieautoryzowanego dostępu.
5. Zastosowania
Serwowanie treści: Idealny do serwowania statycznych treści z niskim opóźnieniem.
Proxy i load balancing: Powszechnie używany jako reverse proxy oraz do równoważenia obciążenia w systemach o dużej skali.
Serwery mikroserwisów: W mikroserwisowych architekturach używany do zarządzania komunikacją między serwisami.