LINUX.ORG.RU

Nginx 1.17.2

 


1

3

Состоялся очередной релиз в текущей mainline ветке веб-сервера nginx. В ветке 1.17 идёт активная разработка, в то время как в текущую стабильную ветку (1.16) вносятся только исправления ошибок.

  • Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4. Спасибо Илье Леошкевичу.
  • Изменение: метод $r->internal_redirect() встроенного перла теперь ожидает закодированный URI.
  • Добавление: теперь с помощью метода $r->internal_redirect() встроенного перла можно перейти в именованный location.
  • Исправление: в обработке ошибок во встроенном перле.
  • Исправление: на старте или во время переконфигурации мог произойти segmentation fault, если в конфигурации использовалось значение hash bucket size больше 64 килобайт.
  • Исправление: при использовании методов обработки соединений select, poll и /dev/poll nginx мог нагружать процессор во время небуферизованного проксирования и при проксировании WebSocket-соединений.
  • Исправление: в модуле ngx_http_xslt_filter_module.
  • Исправление: в модуле ngx_http_ssi_filter_module.

>>> Changelog

★★★★★

Проверено: jollheef ()

Ответ на: комментарий от WitcherGeralt

Уже довольно давно, на сколько я помню. Судя по исходникам где-то в 0.3.21 (14 лет назад).

А ещё там есть JS, и кажется две реализации lua (сторонними модулями). Такой вот легковесный сервер

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Про JS я знаю и про OpenResty, а перл меня удивил. Даже при том, что с Nginx я преесекался всего раз, всё равно удивительно было узнать. Не ясно в таком случае зачем нужно было вкорячивать JS.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Подозреваю что там один сценарий:

  • Надо сделать конфиг гибче
  • Давайте впилим какой-нибудь ЯП
  • Чёт как то не очень, этим поделием никто не пользуется и почти никто о нём не знает
  • GOTO 1
MrClon ★★★★★ ()
Ответ на: Всё разумно от anonymous

Вроде да, но кажется его уже тогда начали закапывать в пользу python. Nginx вообще достаточно консервативен, JS начали впиливать только когда хайп по нему устаканился

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Такой вот легковесный сервер

Ну это модули, которые можно выкинуть. Если кому-то нужна скриптота, конфигом не решаемая, то пихают. Вообще, по идее, можно модуль хоть для QuakeC присобачить. Там API для модулей и всё такое.

kostyarin_ ()
Последнее исправление: kostyarin_ (всего исправлений: 1)

Исправление: при использовании методов обработки соединений select, poll и /dev/poll nginx мог нагружать процессор во время небуферизованного проксирования и при проксировании WebSocket-соединений.

А io_uring, я так понимаю, всё ещё старательно не замечают.

kostyarin_ ()
Ответ на: Всё разумно от anonymous

Re: Всё разумно

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

Iron_Bug ★★★★ ()
Ответ на: комментарий от kostyarin_

Присобачить это одно, а если бы логика движка в принципе на скрипте работала погоняя сишными биндингами... Или там хорошее АПИ, позволяющее творить всё что надо?

q0tw4 ★★★ ()
Ответ на: комментарий от drsm

что это за неведомое УГ вообще и зачем оно нужно в скриптах на сервере, например?

а перловка уделывает grep'ы и awk'и легко и непринуждённо. и за столько лет никто пока не написал лучшей regex-парсилки.

у меня есть только одна претензия к перлу: лютая религиознутость его автора. но она не мешает работе софтины.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

что это за неведомое УГ вообще и зачем оно нужно в скриптах на сервере, например?

это middleware для nginx, используется для задач, которые требуют динамики, но поднятие full-featured backend’а нецелесообразно.

например, JWT авторизация летит, можно чекать структуру прям на фронтенде, избавляя бекенды от флуда/expired запросов, и тп.

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

drsm ()
Ответ на: комментарий от drsm

я сильно подозреваю, что «задачи, которые требуют динамики» скрывают под собой либо падучий говнософт, либо велосипеды, сделанные из говна и палок, вместо нормального серверного софта. потому что в норме на сервере софт не должен стартовать при запуске сервера и работать 24 часа в сутки без перебоев и падений. и это требование для серверного софта - непрерывная бесперебойная работа. а всё остальное - это извращения.

Iron_Bug ★★★★ ()
Ответ на: Re: Всё разумно от Iron_Bug

он уделывает все прочие скрипты по скорости

Нет.

ни разу не видела админских скриптов на js

Не удивительно, оно же асинхронное, вместо простых прямолинейных скриптов получались бы гирлянды из коллбеков. Можно и так, конечно, но это поехавшим нужно быть.

WitcherGeralt ★★ ()
Ответ на: комментарий от WitcherGeralt

ну, может, зависит от задач. но я когда в телекоме работала, там иногда надо было хитрожопые выборки делать из логов БС. а это такие уродские файлы размером в несколько терабайт каждый. и вот надо из них по каким-то хитровывернутым критериям доставать инфу. причём задачи эти не типовые, а так, от раза к разу, для разбора полётов и разборок с конкретными юзерами. так вот перл проявил себя лучше всего. правда, на сишечке ещё быстрее оказалось, но там под каждую задачу надо писать, а на перле наговнякать регексп - раз плюнуть. и ведь работает! причём разница была ощутима: например, стандартными утилитами выборка могла идти дней 6, а на перле - всего за сутки. на сишечке вышло за несколько часов :) но это уже не скрипты.

Iron_Bug ★★★★ ()
Ответ на: комментарий от WitcherGeralt

Не удивительно, оно же асинхронное, вместо простых прямолинейных скриптов получались бы гирлянды из коллбеков. Можно и так, конечно, но это поехавшим нужно быть.

для современного js уже не актуально, тк async/await подвезли.

drsm ()
Ответ на: комментарий от Iron_Bug

потому что в норме на сервере софт не должен стартовать при запуске сервера и работать 24 часа в сутки без перебоев и падений. и это требование для серверного софта - непрерывная бесперебойная работа. а всё остальное - это извращения.

не вижу противоречий. двигло написаное на Си исполняет байткод полученый компиляцией подмножества js. 24/7, все дела.

drsm ()
Последнее исправление: drsm (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Посмотри динамику за последние годы и поймешь почему можно смело говорить о лидерстве. Апач все эти годы только теряет, со своих 60+% он уже докатился до 29. При этом последние месяцы видно, что они уже не друг у друга отгрызают, а постепенно поджирают MS.

Nill ()
Ответ на: комментарий от WitcherGeralt

Апач уже не вернётся в лидеры

Ну ХЗ. С переходом на php-fpm те кто раньше использовал связку nginx+apache+php могут при желании выкинуть nginx, apache научился не подгружать интерпретатор php на каждую отдаваемую картиночку. Хотя мне прельстивей наоборот выкинуть apache, не по нраву он мне

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Апач — комбайн из прошлого, в нем слишком много не нужного в реальной жизни и конфиг у него написан рептилоидами для силиконовой формы жизни. Я больше 10 лет, как отказался от апача и очень рад этому факту по сей день. Сколько же с ним было проблем. С nginx я сталкивался с одной проблемой, это была проблема с отзывом пользовательских сертификатов, когда с ней столкнулся(дело было лет 9 назад) написал в рассылку, мне ответил лично Игорь, объяснил, что беда не у nginx, а вот такие и такие проблемы с openssl, а раз мне очень нужно, то я могу вот так и так накостылить в конфиге, что бы все работало. Больше проблем с nginx не помню, а от того случая осталось приятное впечатление об Игоре, как разработчике, так как он оперативно ответил, все объяснил и помог сделать обходное решение.

Nill ()
Ответ на: комментарий от MrClon

Ну, очевидно, нравится оно силиконовой форме жизни, блин.

Изредка у залетных клиентов приходится сталкиваться с апачем, так я смотрю на конфиг и фигею. У nginx'а конфиг читаемый совершенно легко, а в конфиг апача соваться это же трындец.

Nill ()
Ответ на: комментарий от Nill

У nginx’а конфиг читаемый совершенно легко, а в конфиг апача соваться это же трындец

Дело вкуса и привычки. Для меня конфиг апача прекрасно читаем, а конфиг nginx я терпеть не могу. Потому юзаю Caddy при наличии такой возможности.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Caddy, кстати, тоже юзаю. На личных проектах, типа сайта старшего брата, там где бесплатная лицензия позволяет. Для проектов на 10 хитов в день он хорош, да. А для рабочих проектов только nginx, ибо нагрузка и надежность.

Nill ()
Ответ на: комментарий от WitcherGeralt

Дело вкуса и привычки.

Я начинал в 1997, так что помимо apache и выбора-то не было. Но при первой возможности сбежал от этих «привычек». Недавно пытался сыну показать конфиг апача(сыну 20, работает админом), так сын плевался и спрашивал зачем использовать «ТАКОЕ», если есть nginx :)

Nill ()
Ответ на: комментарий от Nill

Так Apache License всё что угодно позволяет, собирай сам да и всё. Я его тоже для себя юзаю в основном, но не факт, что он сколь-либо менее стабилен чем nginx. Ещё внутреннюю инфраструктуру на прошлом месте работы на него посадил, ту, что для человеков, типа вики и подобного.

WitcherGeralt ★★ ()
Ответ на: комментарий от drsm

а зачем???? если уж «двигло» написали на С, то зачем какие-то ошмётки вокруг прилеплять? тем более если они заведомо падучи и жрут ресурсы.

так можно любой хороший продукт до маразма довести.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)