Wydanie nginx 1.18.0

Po roku rozwoju reprezentowany przez nowa stabilna gałąź wysokowydajnego serwera HTTP i wieloprotokołowego serwera proxy nginx 1.18.0, który wchłonął zmiany zgromadzone w głównej gałęzi 1.17.x. W przyszłości wszystkie zmiany w stabilnej gałęzi 1.18 będą związane z eliminacją poważnych błędów i podatności. Wkrótce powstanie główna gałąź nginx 1.19, w ramach której kontynuowany będzie rozwój nowych funkcji. Dla zwykłych użytkowników, którzy nie mają za zadanie zapewnić kompatybilności z modułami firm trzecich, zalecane korzystaj z głównej gałęzi, na bazie której co trzy miesiące powstają wydania komercyjnego produktu Nginx Plus.

Według Raport z kwietnia Netcraft nginx jest używany na 19.56% wszystkich aktywnych witryn (rok temu 20.73%, dwa lata temu 21.02%), co daje drugie miejsce pod względem popularności w tej kategorii (udział Apache to 27.64%, Google - 10.03%, Microsoft IIS – 4.77%). Jednocześnie, biorąc pod uwagę wszystkie serwisy, nginx utrzymuje pozycję lidera i zajmuje 36.91% rynku (rok temu 27.52%), podczas gdy udział Apache wynosi 24.73%, Microsoft IIS – 12.85%, Google – 3.42%.

Wśród miliona najczęściej odwiedzanych witryn na świecie udział nginx wynosi 25.54% (rok temu 26.22%, dwa lata temu 23.76%). Obecnie około 459 milionów stron internetowych korzysta z Nginx (397 milionów rok temu). Przez Według Nginx W3Techs jest używany na 31.9% stron z miliona najczęściej odwiedzanych, w kwietniu ubiegłego roku odsetek ten wynosił 41.8%, rok wcześniej - 38% (spadek tłumaczy się przejściem na oddzielną księgowość serwera http Cloudflare). Udział Apache'a spadł w ciągu roku z 43.6% do 38.9%, a Microsoft IIS z 8.6% do 8.3%. W Rosji Nginx używany na 78.9% najczęściej odwiedzanych stron (rok temu – 81%).

Najbardziej godne uwagi ulepszenia dodane podczas opracowywania gałęzi upstream 1.17.x:

  • Dodano dyrektywę limit_req_dry_run, który aktywuje tryb próbny, w którym nie stosuje się ograniczeń intensywności przetwarzania żądań (bez limitu szybkości), ale nadal uwzględnia liczbę żądań przekraczającą limity w pamięci współdzielonej;
  • Dodano dyrektywę limit_conn_dry_run, który przełącza moduł ngx_http_limit_conn_module w tryb uruchomienia testowego, w którym liczba połączeń nie jest ograniczana, ale jest brana pod uwagę;
  • Dodano dyrektywę „opóźnienie_autoryzacji", który umożliwia dodanie opóźnienia do nieautoryzowanych żądań z kodem odpowiedzi 401 w celu zmniejszenia intensywności zgadywania haseł i ochrony przed ataki, manipulowanie pomiarem czasu wykonania operacji (ataku czasowego) podczas uzyskiwania dostępu do systemów, do których dostęp jest ograniczony hasło, wynik podzapytania lub JWT (Token sieciowy JSON);
  • Dodano obsługę zmiennych w dyrektywach „limit_rate” i „limit_rate_after”, a także w dyrektywach „proxy_upload_rate” i „proxy_download_rate” modułu strumieniowego;
  • W dyrektywie grpc_pass dodano obsługę używania zmiennej w parametrze definiującym adres. Jeżeli adres jest podany jako nazwa domeny, nazwa ta jest wyszukiwana wśród opisanych grup serwerów, a jeśli nie zostanie znaleziona, to ustalana za pomocą mechanizmu rozpoznawania nazw;
  • Dodano nowe zmienne $proxy_protocol_server_addr и $proxy_protocol_server_port, które zawierają adres serwera i port uzyskane z nagłówka protokołu PROXY;
  • W module ngx_stream_limit_conn_module dodana zmienna $limit_conn_status, który przechowuje wynik ograniczenia liczby połączeń: PASSED, REJECTED lub REJECTED_DRY_RUN;
  • W module ngx_http_limit_req_module dodana zmienna $limit_req_status, który przechowuje wynik ograniczenia szybkości napływania żądań: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN lub REJECTED_DRY_RUN;
  • Domyślnie moduł jest zmontowany ngx_http_postpone_filter_module;
  • Dodano obsługę przełączania bloków nazwanych „lokalizacją” przy użyciu metody $r->internal_redirect() udostępnianej przez wbudowany interpreter Perla. Ta metoda obejmuje teraz przetwarzanie identyfikatorów URI ze znakami ucieczki;
  • Podczas korzystania z dyrektywy „upstream” w bloku ustawień „upstream”.haszysz» w celu zorganizowania równoważenia obciążenia z powiązaniem klient-serwer, jeśli określisz pustą wartość klucza, zostanie aktywowany tryb równomiernego równoważenia (okrężny);
  • Dodano obsługę wywoływania ioctl(FIONREAD), jeśli jest dostępna, aby uniknąć czytania z szybkiego połączenia w miarę upływu czasu.

Źródło: opennet.ru

Dodaj komentarz