The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск nginx 1.19.7, njs 0.5.1 и NGINX Unit 1.22.0

17.02.2021 10:21

Сформирован выпуск основной ветки nginx 1.19.7, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.18 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей).

Основные изменения:

  • При исчерпании рабочим процессом свободных соединений, nginx теперь закрывает не только keepalive-соединения, но и соединения в состоянии ожидания закрытия сокета ("lingering close").
  • Код обработки соединений в HTTP/2 приближен к реализации HTTP/1.x. Поддержка отдельных настроек "http2_recv_timeout", "http2_idle_timeout" и "http2_max_requests" прекращена в пользу общих директив "keepalive_timeout" и "keepalive_requests".
  • Удалены настройки "http2_max_field_size" и "http2_max_header_size", вместо которых следует использовать "large_client_header_buffers".

Одновременно состоялся выпуск njs 0.5.1, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.

В новой версии добавлена директива "js_header_filter", позволяющая задать JavaScript-функцию для фильтрации и изменения произвольных заголовков ответа:


   js_import foo.js;

   location / {
       js_header_filter foo.filter;
       proxy_pass http://127.0.0.1:8081/;
   }

 foo.js:
   function filter(r) {
     var cookies = r.headersOut['Set-Cookie'];
     var len = r.args.len ? Number(r.args.len) : 0;
     r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len);
   }

   export default {filter};

Также добавлен метод ngx.fetch(), реализующий API Fetch, который предоставляет функциональность HTTP-клиента. Метод поддерживает обработку опций body, headers, buffer_size и max_response_body_size. В возвращаемом объекте Response поддерживаются методы arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type и url, а в объекте Header методы get(), getAll() и has().


  function fetch(r) {
      ngx.fetch('http://nginx.org/')
      .then(reply => reply.text())
      .then(body => r.return(200, body))
      .catch(e => r.return(501, e.message));
   }

Также можно отметить публикацию сервера приложений NGINX Unit 1.22, предлагающего решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0.

В новом выпуске NGINX Unit основное внимание было уделено повышению стабильности, расширению средств для тестирования и исправлению ошибок. В формируемых для Linux пакетах изменены пользователь и группа, под которыми запускается NGINX Unit. Вместо nobody:nobody процессы теперь выполняются под отдельным пользователем unit в группе unit. Обеспечена совместимость с API Stream объектов ServerRequest и ServerResponse из модуля Node.js. В опции "path" для Python-приложений разрешено указание нескольких каталогов.

  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Выпуск nginx 1.19.5 и сервера приложений Unit 1.21.0
  3. OpenNews: Выпуск nginx 1.19.3 и njs 0.4.4
  4. OpenNews: Предварительный выпуск nginx с поддержкой QUIC и HTTP/3
  5. OpenNews: Выпуск сервера приложений NGINX Unit 1.18.0
  6. OpenNews: Спор о правах Rambler на Nginx продолжен в суде США
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54602-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:38, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Все суды во всех странах уже закончились над нжинксом или они все еще под статьей ходят?
     
     
  • 2.3, troll (??), 10:50, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    аквадискотека
     
  • 2.7, Х (?), 11:34, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Кого это для работы с ним волнует?
     
     
  • 3.12, Аноним (12), 12:21, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Есть такая штука называется бизнес-риски.
     
     
  • 4.18, такаяштука (?), 15:09, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Бизнесмены, вы эти риски по комментариям на опеннете выясняете?
    Далеко пойдёте.
     
  • 4.28, Я (??), 23:35, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    всегда можно форкнуть и растереть..
     
  • 3.24, Онаним (?), 20:23, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если у тебя однодневка или местный региональный локалхост - не волнует. А если тебе ещё работать, и работать не в пределах третьего мира - то очень даже.
     
  • 2.10, Сишник (?), 12:00, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Все суды над эппл/гугл/фб закончились или они тоже под статьёй ходят?
     
     
  • 3.17, A.Stahl (ok), 13:40, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Суды бывают разные. Одно дело угроза штрафа в 1% дохода за час, а другое дело угроза передачи прав на код каким-то выхохулям.
     
     
  • 4.19, такаяштука (?), 15:12, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот передали права дальше что? Кто помешает всем тем людям которые работают над нжинксом работать над ним дальше но под другим названием?
    Самое страшное это отберут название и какое-то количество денег, больше ничего в принципе сдалать нельзя.
     
  • 4.32, Аноним (32), 04:05, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот я завтра, допустим, на Торвальдса в суд подам, утверждая, что все права на Linux принадлежат мне, а он у меня все украл.  И что с того?  Угроза есть?  Потенциально, вроде как, да, а фактически я с бездоказательными претензиями отправлюсь куда подальше.

    Вот тут примерно та же история.

     
     
  • 5.33, A.Stahl (ok), 07:58, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот тут примерно та же история.

    Не-а. Будь она такая же, то Рамблер (или кто там нынче вместо него) уже был бы отправлен куда подальше. Однако он ещё здесь и суды длятся, следовательно его позиция не такая уж и бездоказательная.


     

  • 1.2, Аноним (2), 10:48, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > сервера приложений NGINX Unit 1.22, предлагающего решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java)

    Как они разговаривают по HTTP или там какие-то бесконечные бинарные протоколы вроде uwCGI?

     
     
  • 2.4, Брат Анон (ok), 10:59, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Типичный ответ за гошечку:
    1) HTTP 1.1
    2) WebSocket
    3) HTTP 2.0
    4) RPC-JSON (1/2 на выбор)
    5) RPC-XML
    6) RPC-Go (стандартная либа)
    7) gRPC
    8) TCP/IP
    9) UDP/IP
    ... ещё пару десятков, но мне лень гуглить.

    Достаточно? Уверяю, что питонякой -- ситуация не хуже.

     
     
  • 3.5, Аноним (5), 11:23, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    golang ацтой, синтаксис ужасный, оптимизация выходных бинарников отвратная -- поделка гугл для смузибоев, не больше
     
     
  • 4.8, Х (?), 11:37, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    спасибо, что сообщили ваше мнение. мы свяжемся с вами
     
     
  • 5.25, Онаним (?), 20:24, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    можно сразу номерок для блэклиста?
     
     
  • 6.29, Я (??), 23:38, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    связь будет не телефонная..
     
  • 3.6, Аноним (6), 11:33, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > 8) TCP/IP
    > 9) UDP/IP

    уровень интеллекта гошников очевиден

     
     
  • 4.9, Shxcsks (?), 11:57, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Таки шо ви хотите нам этим сказати?
     
     
  • 5.27, Аноним (27), 23:02, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    То что спрашивали про это https://unit.nginx.org/configuration/#go
     
  • 4.34, Брат Анон (ok), 11:08, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> 8) TCP/IP
    >> 9) UDP/IP
    > уровень интеллекта гошников очевиден

    Эммм... Ответ, да -- был частично про другое: нахрена NGINX в Go, если он сам себе NGINX.

     

  • 1.11, Какаянахренразница (ok), 12:07, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Зачастили как-то релизы nginx-а...
     
     
  • 2.20, flkghdfgklh (?), 16:51, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Стабильные релизятся в апреле новые и изредка баг-фиксы. mainline релизится регулярно. Так происходит с разделения на stable и mainline(точнее на релизы новой ветки stable в апреле вышли через полгода после разделения 2011-04-12). То есть скоро 10 лет, как nginx релизится именно по такой схеме.
     
     
  • 3.21, Какаянахренразница (ok), 17:22, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    То есть скоро десять лет, как я грущу по поводу частоты релизов.
     
     
  • 4.22, flkghdfgklh (?), 17:33, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, не забудь отпраздновать 12 апреля
     
     
  • 5.31, опять (?), 00:45, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    да, день космонавтики
     

  • 1.13, Адвокат (?), 12:28, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Они сейчас так спокойно релизится что им за это ничто не будет.
     
     
  • 2.14, ОНОНООНОНН (?), 12:35, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Они сейчас так спокойно релизится

    Раньше буйно в релиз уходили?

     
     
  • 3.15, Совсем другой Аноним (?), 13:11, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дык таперича в смирительной рубашке особо не побуйствуешь
     
  • 3.16, Аноним (16), 13:16, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Раньше буйно в релиз уходили?

    Не знаю как они, но мы с ребятами каждый релиз nginx-а достойно отмечаем

     
     
  • 4.26, Онаним (?), 20:25, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    death march на каждый апдейт?
     

  • 1.23, Аннон (?), 18:05, 17/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Переопределение $_SERVER переменных для апликухи так и не реализовали. Как и взаимодействие с nginx через unix socket (оно работает, но не удаляет сокет при перезапуске). :(
     
  • 1.30, Аноним (30), 00:36, 18/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Апач рулит
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру