Po roku prac rozwojowych nowa stabilna gałąź wysoko wydajnego serwera HTTP i wieloprotokołowego serwera proxy , 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, używać głównej gałęzi, na podstawie której co trzy miesiące tworzone są wydania komercyjnego produktu Nginx Plus.
Zgodnie z 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 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ż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ę , 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ę , 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ę '«, która pozwala na dodanie opóźnienia dla nieautoryzowanych żądań z kodem odpowiedzi 401, aby zmniejszyć intensywność ataków brute force i zabezpieczyć przed , manipulującymi pomiarem czasu realizacji operacji (ataki timingowe) przy dostępie do systemów, do których dostęp jest ograniczony , lub (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 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 i , które zawierają adres i port serwera, uzyskane z nagłówka protokołu PROXY;
- W module dodano zmienną , która przechowuje wynik ograniczenia liczby połączeń: PASSED, REJECTED lub REJECTED_DRY_RUN;
- W module dodano zmienną , 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 ;
- 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ą „” 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
