The OpenNET Project / Index page

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

Релиз nginx 1.18.0

21.04.2020 19:19

После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.18.0, которая вобрала в себя изменения, накопленные в рамках основной ветки 1.17.x. В дальнейшем все изменения в стабильной ветке 1.18 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.19, в рамках которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с апрельским отчетом компании Netcraft nginx используется на 19.56% всех активных сайтов (год назад 20.73%, два года назад 21.02%), что соответствует второму месту по популярности в данной категории (доля Apache соответствует 27.64%, Google - 10.03%, Microsoft IIS - 4.77%). При этом при рассмотрении всех сайтов nginx сохраняет лидерство и занимает 36.91% рынка (год назад 27.52%), в то время как доля Apache соответствует 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Среди миллиона самых посещаемых сайтов в мире доля nginx составляет 25.54% (год назад 26.22%, два года назад 23.76%). В настоящее время под управлением nginx работает около 459 млн сайтов (год назад 397 млн). По данным W3Techs nginx используется на 31.9% сайтах из миллиона самых посещаемых, в апреле прошлого года этот показатель составлял 41.8%, позапрошлого - 38% (спад объясняется переходом к отдельному учёту http-сервера Cloudflare). Доля Apache за год снизилась с 43.6% до 38.9%, а доля Microsoft IIS с 8.6% до 8.3%. В России nginx используется на 78.9% самых посещаемых сайтов (год назад - 81%).

Наиболее заметные улучшения, добавленные в процессе формирования основной ветки 1.17.x:

  • Добавлена директива limit_req_dry_run, которая активирует режим пробного запуска, в котором не применяются ограничения на интенсивность обработки запросов (без rate limit), но продолжается учёт выходящего за лимиты числа запросов в разделяемой памяти;
  • Добавлена директива limit_conn_dry_run, переводящая модуль ngx_http_limit_conn_module в режим пробного запуска, при котором число соединений не ограничивается, но учитывается;
  • Добавлена директива "auth_delay", позволяющая добавить задержку неавторизованных запросов с кодом ответа 401 для сокращения интенсивности подбора паролей и защиты от атак, манипулирующих измерением времени выполнения операций (timing attack) при обращении к системам, доступ к которым ограничен паролем, результатом подзапроса или JWT (JSON Web Token);
  • Добавлена поддержка переменных в директивах "limit_rate" и "limit_rate_after", а также в директивах "proxy_upload_rate" и "proxy_download_rate" модуля stream;
  • В директиве grpc_pass добавлена поддержка использования переменной в параметре, определяющем адрес. Если адрес указан в виде доменного имени, имя ищется среди описанных групп серверов, и, если не найдено, то определяется с помощью resolver’а;
  • Добавлены новые переменные $proxy_protocol_server_addr и $proxy_protocol_server_port, которые содержат адрес и порт сервера, полученные из заголовка протокола PROXY;
  • В модуле ngx_stream_limit_conn_module добавлена переменная $limit_conn_status, которая хранит результат ограничения числа соединений: PASSED, REJECTED или REJECTED_DRY_RUN;
  • В модуле ngx_http_limit_req_module добавлена переменная $limit_req_status, которая хранит результат ограничения скорости поступления запросов: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN или REJECTED_DRY_RUN;
  • По умолчанию обеспечена сборка модуля ngx_http_postpone_filter_module;
  • Добавлена поддержка переключения именованных блоков "location" при помощи метода $r->internal_redirect(), предоставляемого встроенным интерпретатором Perl. Данный метод теперь подразумевает обработку URI с экранированными символами;
  • При использовании в блоке настроек "upstream" директивы "hash" для организации балансировки нагрузки с привязкой клиента к серверу, в случае указания пустого значения ключа теперь активируется режим равномерной балансировки (round-robin);
  • Добавлена поддержка вызова ioctl(FIONREAD), если он доступен, чтобы избежать чтения из быстрого соединения в течение долгого времени.


  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Релиз nginx 1.16.0
  3. OpenNews: Rambler намерен перевести разбирательство с NGINX в гражданско-правовое поле
  4. OpenNews: Увидел свет HTTP-сервер nginx 1.10.0
  5. OpenNews: Релиз HTTP-сервера nginx 1.12.0
  6. OpenNews: Релиз nginx 1.14.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52780-nginx
Ключевые слова: nginx, http
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:35, 21/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    rambler nginx 1.18?
     
     
  • 2.45, Michael Shigorin (ok), 13:59, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А что, они форкали?
     

  • 1.2, IdeaFix (ok), 19:36, 21/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    А чо там как с рамблером? Рамблера в тюрьму посадили?
     
     
  • 2.3, нах. (?), 19:38, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    хто ж его посадит - он ПАМЯТНИК!

     
  • 2.4, Аноним (4), 19:55, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дело еще не закрыто, подозреваемый отпущен.
     
     
  • 3.26, Ilya Indigo (ok), 01:53, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Дело еще не закрыто, подозреваемый отпущен.

    Дело ещё не зарыто, а подозреваемый опущен. //fix

     
  • 3.36, тов. майор (?), 12:09, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой еще такой "подозреваемый"? Откуда это у вас информация, кого мы подозреваем?

    Проведен опрос *свидетелей*. Свидетели - опущены. Ой... то есть, отпущены. То есть сначала конечно первое, а потом второе.

    Аресты и *допросы* будут на следующем этапе, когда уже наберется доказательная база. А пока - танцуйте.

     

  • 1.10, Аноним (10), 21:52, 21/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Интересно кто и за что минусит новость. Уж не думает ли кто-то что проект заклеймён из-за претензий шарашки никакого отношения к нему не имеющей? Я заминусил исключительно за наличие такой ереси как "стабильная версия".
     
     
  • 2.11, Онаним (?), 21:57, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Нет, просто это поделие реально всех достало.
     
     
  • 3.15, Аноним (10), 23:14, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Перечислите скорее же кого и чем достало, а то мужики не знают.
     
     
  • 4.17, Аноним (10), 23:23, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это представитель той (как я думал вымершей) породы ламеров, который до сих пор думает что когда nginx отвечает 504 Gateway Timeout, виноват он, а не стоящий за ним недосервер типа апача.
     
  • 4.22, Аноним (22), 00:01, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Достало, например меня, а чем - это скорее не сам nginx, а те омерзительные безг... большой текст свёрнут, показать
     
     
  • 5.24, Аноним (24), 01:48, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сочный баттхерт не вписавшегося в рынок "сисадмина".
     
     
  • 6.48, Онаним (?), 17:20, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кто не вписался в рынок - видно в принципе уже сейчас, иначе бы nginx не превратился в rambler vs F5 nginx.
     
  • 5.27, Аноним (10), 01:53, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, что общее между у розовых единорогов с UDP-сессиями? Правильно! Ни того ни другого не существует в объективной реальности. Иными словами, если есть протокол более высокого уровня, скажем 7-го, который доставляется через UDP-транспорт, то сессии вполне возможны, но на уровне транспорта UDP их нет.

    Конечно же сессии есть и определяются 4-tuple srcip/srcport dstip/dstport и таймаутом. Если вы не в курсе, L3 балансировщики претендующие на звание хайлоуд так и TCP балансируют, не залезая в пакеты дальше портов. Весь высер - ламерская балаболия от непонимания как работает не то что HTTP3, но и UDP.

     
     
  • 6.32, Аноним (32), 10:13, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А причем тут L3 и nginx То что ты можешь что-то там балансировать фаерволом и с... большой текст свёрнут, показать
     
     
  • 7.33, Аноним (33), 10:21, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тебе не приходило в голову, что используя UDP возможно устанавливать сессии на прикладном уровне, а не на транспортном?
     
     
  • 8.42, Аноним (32), 13:16, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мне Да Но они являются при этом сессиями вышестоящего протокола, а не самого U... текст свёрнут, показать
     
     
  • 9.47, Аноним (10), 17:20, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуё объяснить, прежде всего для себя, с хнера ли ... текст свёрнут, показать
     
  • 7.50, Аноним (10), 17:31, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для тебя наверное будет откровением что IP пакеты уже сами по себе независимы др... большой текст свёрнут, показать
     
     
  • 8.54, нах. (?), 20:07, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    до первого tcp fallback Не надо его ТАК балансировать, он встроенным round-robi... текст свёрнут, показать
     
     
  • 9.57, Аноним (10), 03:29, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Встроенным round-robin он очень плохо балансируется, об этом на каждом углу напи... текст свёрнут, показать
     
  • 9.60, Аноним (22), 04:51, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Чудик, которому ты отвечал настолько неграмотный, что даже не знает что такое L... текст свёрнут, показать
     
     
  • 10.61, нах. (?), 09:12, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    сами эти названия - именно академическая бессмыслица из OSI Им место там же, гд... текст свёрнут, показать
     
  • 8.59, Аноним (22), 04:41, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А содержится в содержимом видимо смузи и фалафель, да L4 balancer и L7 balancer... большой текст свёрнут, показать
     
  • 5.28, Аноним (28), 05:08, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну-ка расскажи, чем "реверс-проксирование" udp отличается от просто проксирования :-)
     
  • 5.29, M1LF (?), 05:55, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > омерзительные безграмотные фанбои, которые...

    ...получают больше тебя.

     
     
  • 6.55, нах. (?), 20:11, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> омерзительные безграмотные фанбои, которые...
    > ...получают больше тебя.

    надежды йуношей питают. С чего это макаке, кое-как освоившей набор ненужных заклинаний единственного инструмента, которым она и пытается забивать любой предмет, даже не совсем похожий на гвоздь - платить? Она и за еду колотить сможет. Вон, желающих ее заменить - целая толпа, вчера из макдака сократили.


     
  • 5.34, Ivan_83 (ok), 11:55, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Фанбоем себя не считаю, но использую nginx везде где дотягиваюсь и где в этом есть потребность.
    До него был у меня лайти, но тогда и потребности мои было очень сильно проще.

    Благодаря nginx мне удалось реализовать часть функционала DLNA media library вообще без программирования - просто кусок конфига и вот nginx уже отвечает на неизвестные ему HTTP методы.
    https://github.com/rozhuk-im/ssdpd/blob/master/nginx/nginx-upnp-handler.conf

    Сходным образом я прохачил ту реализацию что в nginx чтобы венда могла этим пользоватся.
    http://netlab.dhis.org/wiki/ru:software:nginx:webdav


    Что до HTTP/3 и udp - меня это мало интересует.
    Но понятно что делается это чтобы быть в тренде и удовлетворять инвесторов, а не потому что это технически лучшее решение.
    ИМХО бенефициар HTTP/3 - гугл: всё честно - мы рекламу отправили, а получил ли её юзер не знаем, udp же, но деньги за показ мы с вас спишем.

    И понятное дело что на фрилансе приходит куча странных заказчиков со своим "очень важным мнением" как сделать правильно, и они боссы и всегда правы потому что готовы заплатить 10 баксов.
    Попробуйте просто уйти из той тусовки в более адекватную.

     
     
  • 6.40, нах. (?), 12:20, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Попробуйте просто уйти из той тусовки в более адекватную.

    мне кажется, коммерческий выгул собак сейчас запрещен из-за "коронтина" ?

      

     
  • 6.43, Аноним (32), 13:34, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня нет никаких претензий к использованию nginx как к вебсерверу Ни к тем лю... большой текст свёрнут, показать
     
     
  • 7.63, Ivan_83 (ok), 17:25, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Радуйтесь, вы имеете свою нишу :)
     
  • 5.37, нах. (?), 12:14, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Видимо и портки тоже там же стирают.

    конечно нет, они их вообще не стирают, так в обосратых и ходют.

    > Оно во-первых убогое, а во-вторых платное (те функции которые там реально нужны вне вебсервера
    > по балансировке).

    те - тоже либо платные, либо организуются с помощью костылей и подпорок, вызывающих вопросы "но зачем?" - в смысле, зачем nginx-то был в этой куче нужен.

    А что за уникальные люди используют коммерческую версию, и зачем они страдают - я вообще даже представить не могу.

    Впрочем, возможно они не страдают, а наслаждаются, потому что на самом деле для верчения на хвосте инвесторских денег им никакой nginx был не нужен, ни коммерческий, ни некоммерческий - купили вместе с контроллером "потому что могут!". Картиночки красивые, мышкой клац-клац-клац...

     
     
  • 6.44, Аноним (32), 13:39, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > зачем nginx-то был в этой куче нужен

    потому что посоны на районе сказали, что nginx - это круто. Фанбои, сэр. Не пытайтесь понять ход мысли идиотов.

    Там самый главный oof, это когда они .net core и nginx в один докер пихают... ой фсё.

     
     
  • 7.49, Онаним (?), 17:22, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот невозможно не согласиться
     

  • 1.12, тигар (ok), 22:34, 21/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    интересно, за счет кого/чего идет спад % активных сайтов по nginx по версии неткрафт
     
     
  • 2.19, Аноним (10), 23:26, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За счёт проплаченной доли как всегда, вестимо.
     
  • 2.20, мяя (?), 23:41, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > спад

    https://news.netcraft.com/archives/category/web-server-survey/
    А на вид наоборот подъём.

     
  • 2.38, нах. (?), 12:15, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > интересно, за счет кого/чего идет спад % активных сайтов по nginx по версии неткрафт

    Все просто - васян на "каникулах" не заработал даже себе на еду, не то что на хостинг на DO.
    Поэтому его сайтик с котиками и проном отключен за неуплату.

     
  • 2.41, Аноним (41), 12:35, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    more_set_headers "Server: Apache";
     
     
  • 3.53, нах. (?), 19:50, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > more_set_headers "Server: Apache";

    IIS

    Но не хотел бы вас огорчать, васян-модули используются единицами и на статистику никак не повлияли.

     
     
  • 4.56, Аноним (41), 20:29, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ваше мнение очень важно для нас.
     

  • 1.13, Нонон (?), 22:52, 21/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А что там с http2/3 ?
     
     
  • 2.16, Аноним (16), 23:17, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Появление штатной поддержки HTTP/3 в nginx ожидается в ветке 1.17.x в течение 6-12 месяцев" - это было в октябре 2019. Т.е. в 1.17 будет в течение 6 месяцев. Вероятно с 1.18 можно ожидать того же.
     
  • 2.18, Аноним (10), 23:25, 21/04/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    HTTP 2 поддерживается уже много лет. HTTP "две трети" не существует.
     
  • 2.39, нах. (?), 12:16, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А что там с http2/3 ?

    все ок, недавно в http2 опять суматошно затыкали очередную дыру - в этот раз вроде DoS, а не remote shell.

    Работа кипит.

     
     
  • 3.46, nuclight (??), 15:59, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Есть подробности?
     
     
  • 4.51, нах. (?), 17:32, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пока ещё не успел нагаллюцинировать.
     
  • 4.52, нах. (?), 19:45, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть подробности?

    CVE-2019-9511, CVE-2019-9513 и еще какой-то.

    Или тебе прям вчерашних подвезти? Вчерашние пока хакеры юзают, им cve номерок еще не присвоен ;-)

     

  • 1.25, Ilya Indigo (ok), 01:50, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тоже ожидал HTTP/3.
    Видимо перед решили выпустится в конце апреля, чтобы Бубунта и прочие LTS-ные выпуски его подхватили, особенно директиву auth_delay.
     
  • 1.31, Demo (??), 09:21, 22/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Мда-с…
    Нджинкс, конечно, хорош, но уже не торт по причине того, что: "Они ВСЁ ДЕЛАЮТ В NGINX ПОТОМУ ЧТО ТАМ ВСЁ МОЖНО СДЕЛАТЬ!!" Нашу скромную конторку эта короста тоже затронула. Со временем, конфиг нджинкса стал напоминать апачевский, из-за того, что девелоперы норовят заюзать встроенные возможности нджинкса, вместо того, чтобы перенести логику в модуль, и не захламлять своими if()'ами и redirect'ами конфиг.
     
     
  • 2.35, Ivan_83 (ok), 11:57, 22/04/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня тоже конфиг разросся даже дома, но потому что функционала стало дофига.
    Перешёл на инклюды и удалось всё разрести.
     
  • 2.58, Аноним (10), 03:32, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    До-до, наверное лучше вместо одного nginx который, собственно, делает одну задачу, эффективно раскидывая соединения и пакеты на бэкенды, с "большим конфигом" поставить десяток сервисов, каждый с чуть меньшим конфигом, зато в сумме в разы больше и разных форматов, и всем этим управлять.
     
     
  • 3.62, Demo (??), 17:07, 23/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > До-до, … лучше … поставить десяток сервисов,

    Я не о сервисах. Я предлагал нашим разработчикам всю логику перенести с конфига в
    самописный nginx_модуль.so. Сейчас вся логика отдачи защищённого контента реализована
    на запутанном конфиге nginx + PHP.

     
     
  • 4.64, Аноним (64), 01:27, 25/04/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для сложной конфигурации придуман njs. Ну или ngx-lua, если больше нравится.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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