Wydanie nginx 1.18.0

Po roku prac rozwojowych została zaprezentowana nowa stabilna gałąź wysoko wydajnego serwera HTTP i wieloprotokołowego serwera proxy nginx 1.18.0, która zawiera zmiany zgromadzone w ramach głównej gałęzi 1.17.x. W przyszłości wszystkie zmiany w stabilnej gałęzi 1.18 będą odnosić się do eliminacji poważnych błędów i luk w zabezpieczeniach. Wkrótce zostanie utworzona główna gałąź nginx 1.19, w ramach której będzie kontynuowany rozwój nowych funkcji. Dla zwykłych użytkowników, którzy nie mają do czynienia z zapewnieniem zgodności z modułami zewnętrznymi, zaleca się używać głównej gałęzi, na podstawie której co trzy miesiące tworzone są wydania komercyjnego produktu Nginx Plus.

Zgodnie z raportem z kwietnia Firma Netcraft informuje, że nginx jest używany na 19,56% wszystkich aktywnych stron internetowych (rok temu 20,73%, dwa lata temu 21,02%), co odpowiada drugiemu miejscu pod względem popularności w tej kategorii (udział Apache wynosi 27,64%, Google — 10,03%, Microsoft IIS — 4,77%). Przy tym, analiza wszystkich stron pokazuje, że nginx utrzymuje lidera z 36,91% rynku (rok temu 27,52%), podczas gdy udział Apache wynosi 24,73%, Microsoft IIS — 12,85%, a Google — 3,42%.

Wśród miliona najczęściej odwiedzanych stron na świecie, udział nginx wynosi 25,54% (rok temu 26,22%, dwa lata temu 23,76%). Obecnie pod zarządem nginx działa około 459 mln stron (rok temu 397 mln). Z danych W3Techs informuje, że nginx jest używany na 31,9% stron wśród miliona najczęściej odwiedzanych, w kwietniu zeszłego roku wskaźnik ten wynosił 41,8%, a przed dwoma laty — 38% (spadek jest związany z przejściem na oddzielne liczenie serwera http Cloudflare). Udział Apache spadł w ciągu roku z 43,6% do 38,9%, a udział Microsoft IIS z 8,6% do 8,3%. W Rosji nginx jest używane jest używany na 78,9% najczęściej odwiedzanych stron (rok temu — 81%).

Najbardziej zauważalne usprawnienia dodane w procesie tworzenia głównej gałęzi 1.17.x:

  • Dodano dyrektywę limit_req_dry_run, która aktywuje tryb testowy, w którym nie są stosowane ograniczenia dotyczące intensywności przetwarzania żądań (bez ograniczeń szybkości), ale nadal rejestruje się liczba żądań wychodzących poza limity w pamięci współdzielonej;
  • Dodano dyrektywę limit_conn_dry_run, która przełącza moduł ngx_http_limit_conn_module w tryb testowy, w którym liczba połączeń nie jest ograniczona, ale jest śledzona;
  • Dodano dyrektywę 'auth_delay«, która pozwala na dodanie opóźnienia dla nieautoryzowanych żądań z kodem odpowiedzi 401, aby zmniejszyć intensywność ataków brute force i zabezpieczyć przed atakami, manipulującymi pomiarem czasu realizacji operacji (ataki timingowe) przy dostępie do systemów, do których dostęp jest ograniczony hasłem, wynikiem podzapytania lub JWT (JSON Web Token);
  • Dodano wsparcie dla zmiennych w dyrektywach „limit_rate” i „limit_rate_after”, a także w dyrektywach „proxy_upload_rate” i „proxy_download_rate” modułu stream;
  • W dyrektywie grpc_pass dodano wsparcie dla używania zmiennej w parametrach definiujących adres. Jeśli adres podany jest jako nazwa domeny, nazwa jest wyszukiwana w opisanych grupach serwerów, a jeśli nie zostanie znaleziona, ustalana jest przez resolvera;
  • Dodano nowe zmienne $proxy_protocol_server_addr i $proxy_protocol_server_port, które zawierają adres i port serwera, uzyskane z nagłówka protokołu PROXY;
  • W module ngx_stream_limit_conn_module dodano zmienną $limit_conn_status, która przechowuje wynik ograniczenia liczby połączeń: PASSED, REJECTED lub REJECTED_DRY_RUN;
  • W module ngx_http_limit_req_module dodano zmienną $limit_req_status, która przechowuje wynik ograniczenia prędkości przychodzących zapytań: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN lub REJECTED_DRY_RUN;
  • Domyślnie zapewniona jest kompilacja modułu ngx_http_postpone_filter_module;
  • Dodano wsparcie dla przełączania nazwanych bloków „location” za pomocą metody $r->internal_redirect(), oferowanej przez wbudowany interpreter Perl. Metoda ta teraz zakłada przetwarzanie URI z escape'owanymi znakami;
  • Podczas korzystania w bloku ustawień „upstream” z dyrektywą „hash” do organizacji równoważenia obciążenia z przypisaniem klienta do serwera, w przypadku podania pustej wartości klucza aktywowany jest tryb równomiernego rozkładu obciążenia (round-robin);
  • Dodano wsparcie dla wywołania ioctl(FIONREAD), jeśli jest dostępne, aby uniknąć długiego czytania z szybkiego połączenia.

Ź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