Wydanie nginx 1.20.0

Po roku prac nad nową stabilną gałęzią wysokowydajnego serwera HTTP oraz wieloprotokołowego serwera proxy nginx 1.20.0, która wprowadza zmiany skumulowane w głównej gałęzi 1.19.x. W przyszłości wszystkie zmiany w stabilnej gałęzi 1.20 będą dotyczyły eliminacji poważnych błędów i luk w zabezpieczeniach. Wkrótce zostanie utworzona główna gałąź nginx 1.21, w ramach której kontynuowane będą prace nad nowymi możliwościami. Zwykłym użytkownikom, którzy nie muszą zapewniać zgodności z zewnętrznymi modułami, zaleca się korzystanie z głównej gałęzi, na podstawie której co trzy miesiące będą wydawane komercyjne wersje produktu Nginx Plus.

Zgodnie z marzec raportem firmy Netcraft, nginx jest używany na 20,15% wszystkich aktywnych stron (rok temu 19,56%, dwa lata temu 20,73%), co stawia go na drugim miejscu pod względem popularności w tej kategorii (udział Apache wynosi 25,38% (rok temu 27,64%), Google - 10,09%, Cloudflare - 8,51%. Przy analizie wszystkich stron, nginx zachowuje pozycję lidera z 35,34% rynku (rok temu 36,91%, dwa lata temu - 27,52%), podczas gdy udział Apache wynosi 25,98%, OpenResty (platforma oparta na nginx i LuaJIT) - 6,55%, Microsoft IIS - 5,96%.

Spośród miliona najczęściej odwiedzanych stron na świecie, udział nginx wynosi 25,55% (rok temu 25,54%, dwa lata temu 26,22%). Obecnie pod zarządem nginx znajduje się około 419 milionów stron (rok temu 459 milionów). Z danych W3Techs wynika, że nginx jest używany na 33,7% z miliona najczęściej odwiedzanych stron, w kwietniu ubiegłego roku ten wskaźnik wynosił 31,9%, a dwa lata temu 41,8% (spadek tłumaczy się przejściem do osobnego liczenia serwera http Cloudflare). Udział Apache spadł z 39,5% do 34%, a udział Microsoft IIS z 8,3% do 7%. Udział LiteSpeed wzrósł z 6,3% do 8,4%, a Node.js z 0,8% do 1,2%. W Rosji nginx jest używany na 79,1% najczęściej odwiedzanych stron (rok temu - 78,9%).

Najbardziej zauważalne ulepszenia dodane podczas formowania głównej gałęzi 1.19.x:

  • Dodano możliwość weryfikacji certyfikatów klienckich z wykorzystaniem zewnętrznych usług opartych na protokole OCSP (Online Certificate Status Protocol). Aby włączyć weryfikację, zaproponowano dyrektywę ssl_ocsp, do konfiguracji rozmiaru cache - ssl_ocsp_cache, a do nadpisania URL OCSP-respondenta określonego w certyfikacie - ssl_ocsp_responder.
  • Moduł ngx_stream_set_module został dołączony, co pozwala przypisać wartość zmiennej server { listen 12345; set $true 1; }
  • Dodano dyrektywę proxy_cookie_flags do wskazywania flag dla Cookie w połączeniach proxy. Na przykład, aby dodać do Cookie „one” flagę „httponly”, a dla wszystkich innych flag Cookie flagi „nosecure” i „samesite=strict”, można użyć konstrukcji: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Podobna dyrektywa userid_flags do dodawania flag do ciasteczek została również wprowadzona dla modułu ngx_http_userid.

  • Dodano dyrektywy „ssl_conf_command”, „proxy_ssl_conf_command”, „grpc_ssl_conf_command” i „uwsgi_ssl_conf_command”, za pomocą których można ustawić dowolne parametry konfiguracji OpenSSL. Na przykład, aby priorytetować szyfry ChaCha i zaawansować ustawienia szyfrów TLSv1.3, można określić ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Dodano dyrektywę „ssl_reject_handshake”, która nakazuje odrzucać wszystkie próby negocjacji. SSL-połączeń (na przykład, może być używana do odrzucania wszystkich żądań z nieznanymi nazwami hostów w polu SNI). server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Do proxy pocztowego dodano dyrektywę proxy_smtp_auth, która umożliwia uwierzytelnienie użytkownika na backendzie za pomocą polecenia AUTH i mechanizmu PLAIN SASL.
  • Dodano dyrektywę „keepalive_time”, która ogranicza całkowity czas życia każdego połączenia keep-alive, po upływie którego połączenie zostanie zamknięte (nie mylić z keepalive_timeout, który określa czas bezczynności, po którym połączenie keep-alive jest zamykane).
  • Dodano zmienną $connection_time, za pomocą której można uzyskać informacje o czasie trwania połączenia w sekundach z dokładnością milisekundową.
  • Do dyrektyw „proxy_cache_path”, „fastcgi_cache_path”, „scgi_cache_path” i „uwsgi_cache_path” dodano parametr „min_free”, regulujący rozmiar cache'u w zależności od określenia minimalnego rozmiaru wolnego miejsca na dysku.
  • Dyrektywy „lingering_close”, „lingering_time” i „lingering_timeout” dostosowano do pracy z HTTP/2.
  • Kod obsługi połączeń w HTTP/2 został zbliżony do implementacji HTTP/1.x. Obsługa odrębnych ustawień „http2_recv_timeout”, „http2_idle_timeout” i „http2_max_requests” została zakończona na rzecz wspólnych dyrektyw „keepalive_timeout” i „keepalive_requests”. Usunięto ustawienia „http2_max_field_size” i „http2_max_header_size”, zamiast których należy używać „large_client_header_buffers”.
  • Dodano nową opcję wiersza poleceń „-e”, która pozwala określić alternatywny plik do zapisania logu błędów, który będzie używany zamiast logu określonego w ustawieniach. Zamiast nazwy pliku można podać specjalną wartość stderr.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster