Nginx - Nowoczesny serwer HTTP i FastCGI

Nginx to szybki i wydajny serwer HTTP do hostowania dynamicznych aplikacji internetowych, load balancer, czy serwer obsługujący pliki statyczne

nginx [engine x] jest serwerem HTTP oraz serwerem proxy IMAP/POP3 tworzonym przez Igora Sysoeva. Serwer ten wykorzystywany jest na wielu Rosyjskich portalach internetowych poddawanych dużemu obciążeniu. Nginx wydawany jest na licencji BSD. Wg. raportu netcraft z grudnia 2006 serwer nginx wykorzystywany był na 114160 domenach, lighttpd na 178619. Nginx wykorzystywany jest na rambler.ru czy na blog.zabiello.com :nice: Niniejsza dokumentacja to tłumaczenie anglojęzycznej wiki oraz innych artykułów dostępnych w sieci.
  • Instalacja Nginx - Opis instalacji i kompilacji (wraz z opisem dostępnych opcji) serwera nginx w systemach Linux/BSD
  • Przykładowe konfiguracje Nginx - Przegląd konfiguracji serwera Nginx do różnych zadań (load balancing, virtualhost, serwowanie plików statycznych, serwowanie aplikacji PHP)
  • Monitoring statystyk serwera Nginx za pomocą rrdtool - Statystyki i monitoring ruchu na serwerze Nginx generowane za pomocą rrdtool i modułu serwera http_stub_status_module,
  • Główny moduł HTTP Nginx - Opis podstawowych dyrektyw i ustawień stosowanych w konfiguracjach serwera Nginx
  • Moduł Zdarzeń HTTP Nginx - Opis dyrektyw powiązanych ze zdarzeniami w serwerze Nginx związanych z połączeniami HTTP i zdarzeniami systemowymi
  • Moduł HTTP Nginxa - Opis głównego modułu konfiguracyjnegoi Nginxa odpowiedzialnego za jego podstawową konfigurację, jak i sposobu konfigurowania tego serwera
  • ngx_http_access_module - Prosta kontrola dostępu na podstawie IP
  • ngx_http_auth_basic_module - Uwierzytelnianie HTTP Basic Authentication w Nginx za pomocą modułu ngx_http_auth_basic_module. Opis modułu i przykładowa konfiguracja
  • ngx_http_autoindex_module - Autoindeksowanie katalogów za pomocą modułu ngx_http_autoindex_module dla serwera Nginx. Załączono przykładową konfigurację serwera
  • ngx_http_browser_module - Moduł ngx_http_browser_module serwera Nginx do obsługi/identyfikacji przeglądarek wysyłających żądania do serwera
  • ngx_http_charset_module - Moduł ngx_http_charset_module serwera Nginx do obsługi różnych niestandardowych kodowań znaków na stronach internetowych
  • ngx_http_dav_module - Opis i kompilacja modułu ngx_http_dav_module serwera Nginx do obsługi połączeń WebDAV. Artykuł zawiera też przykładową konfigurację
  • ngx_http_fastcgi_module - Opis modułu ngx_http_fastcgi_module obsługującego protokół FastCGI w serwerze Nginx do hostowania aplikacji napisanych w Pythonie, Ruby czy PHP
  • ngx_http_flv_module - Opis i sposób kompilacji modułu ngx_http_flv_module do strumieniowania FLV poprzez serwer Nginx.
  • ngx_http_gzip_module - Opis modułu ngx_http_gzip_module obsługującego kompresję Gzip w Nginx. Załączono przykładową konfigurację serwera i opis
  • ngx_http_headers_module - Moduł ngx_http_headers_module do dodawania nagłówków dla odpowiedzi HTTP w serwerze Nginx. Opis ustawień oraz przykładowa konfiguracja
  • ngx_http_index_module - Moduł określający pliki index
  • ngx_http_upstream - Określanie listy mirrorów-serwerów za pomocą modułu ngx_http_upstream w Nginx. Załączona przykładowa konfiguracja
  • ngx_http_memcached_module - Moduł obsługujący keszowanie za pomocą memcached
  • ngx_http_rewrite_module - Przepisywanie URLi za pomocą modułu ngx_http_rewrite_module w Nginx. Załączono przykładowy plik konfiguracyjny

Podstawowe funkcjonalności HTTP

  • Obsługa statycznych plików, plików index i autoindeksowanie
  • Przyśpieszone reverse proxy bez keszowania, prosty load balancing
  • Wsparcie dla FastCGI bez keszowania z load balancing
  • Budowa modularna, filtry (m.in. gzip, byte ranges, chunked responses, SSI)
  • Wsparcie dla SSL

Funkcjonalności proxy IMAP/POP3

  • Przekierowanie użytkownika do aplikacji IMAP/POP3 z wykorzystaniem zewnętrznego serwera uwierzytelniania HTTP
  • Uwierzytelnianie: IMAP LOGIN, POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5
  • Wsparcie dla SSL i STARTTLS

Wspierane systemy operacyjne i platformy

  • FreeBSD 3.x, 4.x, 5.x, 6.x dla i386. FreeBSD 5.x, 6.x dla amd64
  • Linux 2.2, 2.4, 2.6 dla i386. Linux 2.6 dla amd64
  • Solaris 9 dla i386, sun4u; Solaris 10 dla i386
  • MacOS X (10.4) dla ppc

Architektury i Skalowalność

  • Jeden główny proces i kilka procesów sług (workers) nieuprzywilejowanego użytkownika
  • Wsparcie dla kqueue (liczne funkcjonalności) (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10) i select
  • Wsparcie sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+) i sendfilev (Solaris 8 7/01+)
  • Wsparcie accept-filter (FreeBSD 4.1+) i TCP_DEFER_ACCEPT (Linux 2.4+)
  • 10 000 nieaktywnych połączeń HTTP keep-alive zajmuje około 2.5 MB RAM
  • Zminimalizowana ilość operacji kopiowania danych

Inne Funkcjonalności

  • Serwery wirtualne bazujące na IP i nazwie
  • Wsparcie połączeń keep-alive i pipeline
  • Elastyczna konfiguracja
  • Aktualizacja i rekonfiguracja bez zaburzenia pracy procesów
  • Przekierowania dla błędów 3XX-5XX
  • Moduł Rewrite
  • Kontrola dostępu na bazie IP i prostego uwierzytelniania HTTP
  • Metody PUT, DELETE i MKCOL
  • Streaming FLV (strumieniowa transmisja FLV)
  • Ograniczanie prędkości
  • Ograniczanie ilości równoczesnych połączeń z jednego adresu

Kategorie

Strony