Сформирован выпуск основной ветки nginx 1.19.2, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.18 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей)...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53536
Скоро JS вытеснинит perl, bash, lua и python и любой уважающий себя админ будет писать скрипты ток на JS.Все остальное от лукавого.
"любой уважающий" 😂
Теперь можно рекурсивно удалить рут. Это ли не верх уважения.
Только делайте это асинхронно и с использованием обещаний не забывая о росте стека.
Еще не забудьте симлинки друг на друга поставить, чтобы посмотреть сколько там этого стэка вообще есть и что за гранью.
> Скоро JS вытеснинит perl, bash, lua и python и любой уважающий себя админ будет писать скрипты ток на JS.Если скрипт, правящий пару строк в текстовом файлов, жрет меньше двух ядер и гига памяти на протяжении пары часов — это уже не юниксвей, никакого уважения!
Интерпретаторы JS без JIT одни из самых быстрых и экономичных по потреблению памяти, perl и python только мечтать о таком. Ох уж эти диванные специалисты из комментов.
Интерпретатор, может, и экономичен... в тот момент, когда ничего не интерпретирует.
Ты понял, о чем я.
Но пруфов конечно не будет?
На самом деле, скорей бы. Лучший язык на сегодняшний день - только добить либы для диплернинга как в питоне и все остальное можно забыть как страшный сон.
> только добить либы для диплернинга как в питонеГораздо важнее добить для сегфолтинга как в Си.
Не, так не получится - когда питонятина наворачивается, там 3 страницы трэйса. Сишники заколебутся столько гуано наворачивать.
ulimit -c unlimited, и у вас весь диск в гуане.
Я не запускаю питонятину по счастью, так что нет.
Питонятина с коркой не падает, хех.
> Питонятина с коркой не падает, хех.У меня сишное добро никаких корфайлов не создает. Если вы хотели сказать что это баг, я тогда скажу что вебмакаки даже в настройки системы не сумели, чтоли. И почему-то возомнили что это баг си, хотя это - вообще фича операционной системы. Гении, блин, маркетингового булшита и вопиющей некомпетентности.
Надеюсь это объясняет почему именно я не хочу пользоваться такими программами. Западло мне крап от ламеров и дилетантов юзать, приколитесь?!
Вам тонко намекают, что там, где у питонятины маленький стектрейс, у сишных макак здоровенный coredump.
Как там заграничный суд продвигается? Хорошо что местное дело уже закрыто.
Кричат и лают на закрытую границу и требуют прислать караваны с золотом на самоходном карабле через ... пдозреваю ...
Сысоев вроде предусмотрительно закрылся с той стороны, где суд еще идет.
> изменения, связанные с устранением серьёзных ошибокинтересно, в этой версии рамблер уже устранили?
Не путайте нескольких злодеев с целым брендом...
Организацией!
> Не путайте нескольких злодеев с целым брендом...То есть всё-таки царь хороший?
Или #этодругое?
спешите видеть - употребление #этодругое от короля двуемыслия
Хорошо поддел ;-)
развитие новых возможностей. мда.
А тебе каких возможностей в нём не хватает? По мне, так уже очень много лишнего напихали.
Nginx не адаптировался к нашим текущим лучшим практикам:
Наши внутренние и (закрытые) внешние API постепенно переходят от REST к gRPC, что требует всевозможных возможностей перекодирования от прокси;
Буферы протоколов стали де-факто стандартом для определений и конфигураций сервисов;
Все программное обеспечение, независимо от языка, собирается и тестируется с помощью Bazel;
Огромное участие наших инженеров в важных инфраструктурных проектах в сообществе разработчиков ПО с открытым исходным кодом;Поддержка Nginx была достаточно дорогой:
Логика генерации конфигураций была слишком гибкой и разделена между YAML, Jinja2 и Python;
Мониторинг представлял собой смесь Lua, разбора логов и системного мониторинга;
Повышенная зависимость от сторонних модулей влияла на стабильность, производительность и стоимость последующих обновлений;
Развертывание Nginx и управление процессами сильно отличались от остальных сервисов. Она во многом зависела от конфигураций других систем: syslog, logrotate и т.д., а не была полностью отделена от базовой операционной системы.
Nginx — не для API и микросервисов, это отдача статики, фронт-прокси и FCGI/UWSGI прокси для пыха/питона.(Кстати о логах — Nginx вполне неплохо справляется с их упаковкой в JSON с последующим стримингом в logstash → kafka → clickhouse, и никаких logrotate и парсеров с регулярками).
А под ваши задачи весьма неплохо попадает Envoy, изначально заточенный под динамическую конфигурацию и имеющий first class gRPC support. А вот статику сервить он не умеет, поэтому как замена апачу не пойдет, да.
> Nginx — не для API и микросервисов,В чем можно убедиться попытавшись написать его модуль. А потом lwan.ws взять и ощутить разницу :)
> А потом lwan.ws взять и ощутить разницу :)Прикольная штука, спасибо.
> Прикольная штука, спасибо.Ну, во всяком случае, апи там vs сабжа просто небо и земля.
> Nginx не адаптировался к нашим текущим лучшим практикам:это не лучшие, а худшие практики.
> Развертывание Nginx и управление процессами сильно отличались от
> остальных сервисов.беда девляпсов, кого она колышет?
> Она во многом зависела от конфигураций других систем: syslog,
> logrotate и т.д., а не была полностью отделена от базовой операционной
> системы.а зачем отделять от операционной системы системное приложение (обычно главное и часто единственное в данной системе)? Чтобы костылить ОТДЕЛЬНО другой сислог, ротейтилку и т д? А, ну да, вы только так и умеете, unix - не умеете, за вами админ должен подтирать.
Собственно, остальные претензии ровно из той же оперы.
Ну ничего, для вас вон уже соорудили непонятное нечто по имени unit. nginx вам в общем-то и не нужен.
> беда девляпсов, кого она колышет?Связался с чем-то, кроме апача и pure-ftpd — уже хипстер и девляпс, не забывай подливать смузи и подворачивать штаны.
> а зачем отделять от операционной системы системное приложение (обычно главное и часто единственное в данной системе)? Чтобы костылить ОТДЕЛЬНО другой сислог, ротейтилку и т д?
Сислог в детстве очень много курил, и поэтому вырос маленьким и больным.
Если есть хотя бы скромные 10к RPS, банальная выборка статистики ошибок за прошедшие сутки грепом превращается в цирк с конями.
Алло, сислог может писать в постгрес хоть куда. Откройте для себя уже рсислог или я там не знаю, тому же рсислог уже 20 лет. Не нужно пихать всё в одну кучу, модульность имеет определённые недостатки но достоинств у неё куда больше — каждый должен заниматься тем, что у него получается лучше всего и является его предназначением.
А парсить кто будет? Видел third-party плагин mmjsonparse для rsyslog но, как и все third-party, требует некоторых плясок.
>> беда девляпсов, кого она колышет?
> Связался с чем-то, кроме апача и pure-ftpd — уже хипстер и девляпс,вам уже и nginx не торт
> Если есть хотя бы скромные 10к RPS, банальная выборка статистики ошибок за
> прошедшие сутки грепом превращается в цирк с конями.О! Они _статистику_ - грепом собирают. Девляпсы как есть. Разумеется, у них цирк.
Разве работать с логами исключительно grep-ом — не труЪ unix way?
> Разве работать с логами исключительно grep-ом — не труЪ unix way?Это типичный обезьянко-way, схватила молоток - любая проблема рассматривается как гвоздь.
> Это типичный обезьянко-way, схватила молоток - любая проблема рассматривается как гвоздь.Нихрена, пох в кои-то веки дело говорит.
Не склонен согласиться. Для более-менее крупных нагрузок подходы к хранению и анализу логов сильно отличаются от syslog. Все-таки последний рассчитан на очень маленький поток сообщений. В крупных системах access-логи вебни или логи приложений никто в текстовые файлы не пишет.
> Nginx не адаптировался к нашим текущим лучшим практикам:А что, так можно было?!
> Буферы протоколов стали де-факто стандартом для определений и конфигураций сервисов;А вы и конфиги в бинарях храните?
> что требует всевозможных возможностей перекодирования от прокси;
Когда кажется что маразм наконец выдохся, придет очередная вебмакака...
> Все программное обеспечение, независимо от языка, собирается и тестируется с помощью Bazel;
Два чая^W молотова в окно этому энтерпрайзу.
> Огромное участие наших инженеров в важных инфраструктурных проектах в сообществе
> разработчиков ПО с открытым исходным кодом;Маркетинговый булшит как он есть. Хотя разработка нжинкса и правда очень враждебна к окружающим.
> Логика генерации конфигураций была слишком гибкой и разделена между YAML, Jinja2 и Python;
А вот тут интересно, как нжинкс виноват в вашей криворукости.
> Мониторинг представлял собой смесь Lua, разбора логов и системного мониторинга;
У них есть коммерческая версия, а вы типа решили на халяву проскочить?
> Развертывание Nginx и управление процессами сильно отличались от остальных сервисов.
Небось какой-нибудь фигни на игогошечке. Спасибо если не яве.
> А вы и конфиги в бинарях храните?Можно в бинарях, можно в YAML, можно в JSON.
Главное, что не очередной вело-формат.> А вот тут интересно, как нжинкс виноват в вашей криворукости.
Отсутствие такой базовой вещи, как API динамической конфигурации — это не его криворукость, это свойство Nginx — «better Apache, nothing more».
> Небось какой-нибудь фигни на игогошечке. Спасибо если не яве.
О да, здоровые люди пишут исключительно на пыхе. И пускают его через через mod_php, конечно же!
> Главное, что не очередной вело-формат.Протобуферы сами по себе - по определению велоформат! Они, видите ли, без схемы хранения идут, и поэтому чтобы вообще распарсить бинарь и понять что сие - вы должны заранее знать что это.
А приколитесь какой облом - я с протобуфером дело имею, правда в контексте OSM скорее, и вот там я даже понимаю зачем оно такое надо - а потому что 250-гиговая (!!!) XML'ка нечто совсем уж за гранью добра и зла, ее такую ни редактировать чем либо, ни парсить вменяемо нереально, зато в несколько раз жирнее и многократно тормознее в парсинге. Что при объеме данных порядка 30Gb в сжатом PBF - весьма и весма аргумент.
...но у конфигов масштаб совсем иной и я не понимаю чем плохи какие-нибудь ini-файлы, мелкие, простые, человекочитаемые, ковыряемые любым эдитором. И даже если бинарный формат сэкономит там немного места, я что-то не уверен что это именно то место где все это окупается.
> Отсутствие такой базовой вещи, как API динамической конфигурации — это не его
> криворукость, это свойство Nginx — «better Apache, nothing more».Ну как бы такое апи штука специфичная и нужная далеко не всем. Хотя если все же нужно - тут мы нелестно вспоминаем апи нжынкса и насколько враждебно и утомительно там что-то менять, начиная с их уроцкой системы контроля версий.
> О да, здоровые люди пишут исключительно на пыхе. И пускают его через
> через mod_php, конечно же!Ну, даже пыхеры такой откровенной #$%аниной как динамические апи конфигурирования httpd не занимались. Это какое-то очень уж утонченное развлечение. Админам видите ли обычно достаточно сменить в конфиге параметры и сказать kill -HUP, чтоли. И все это отлично автоматизируется на хоть 100500 серверов парой сцаных скриптиков делаемых за 2 минуты, в отличие от убер-апи.
> ...но у конфигов масштаб совсем иной и я не понимаю чем плохи какие-нибудь ini-файлы, мелкие, простые, человекочитаемые, ковыряемые любым эдитором. И даже если бинарный формат сэкономит там немного места, я что-то не уверен что это именно то место где все это окупается.Это когда у вас мало сервисов. Сейчас вот например на балансере маленькой конторки, в которой работают 13 человек
www-data@srv13:/etc/nginx$ wc /etc/nginx/nginx.conf
17847 32882 493808 /etc/nginx/nginx.conf
Очень мелко, очень человекочитаемо.
А в мире серьезного бизнеса оно легко достигает десятков мегабайт.> Ну, даже пыхеры такой откровенной #$%аниной как динамические апи конфигурирования httpd не занимались. Это какое-то очень уж утонченное развлечение. Админам видите ли обычно достаточно сменить в конфиге параметры и сказать kill -HUP, чтоли. И все это отлично автоматизируется на хоть 100500 серверов парой сцаных скриптиков делаемых за 2 минуты,
Удачи, особенно когда за балансером работает пара сотен проектов и в прайм-тайм каждые пару минут кто-то апскейлится или даунскейлится.
> в отличие от убер-апи.
Левой пяткой за правым ухом всяко проще, чем рукой, да?)
мне старых не хватает. Нормального /status времен хотя бы apache 1.3, и нормального HA, не требующего ручных костылей и подпорок (потому что в результате nginx летит в помойку и ставится haproxy). Ну, хотя бы, для начала.Все это есть в версии, стоящей 1500зеленых, держитесь за стул - в год (там еще куча ньюансов, так что на деле обойдется в разы дороже). По-моему, вполне очевидно, что кто-то слишком много жрат, и ни один бизнес за такое столько не заплатит (те что платят - платят не за это). HA балансировщики есть и без nginx, и с вполне вменяемым конфигом, а не этим трэшем и п-цом, который "исправить невозможно, поскольку отражает внутреннюю архитектуру" (вранье), и если уж купят, то какой-нибудь citrix.
Когда-то это было очевидно и разраб...владельцам торговой марки, и они обещали-обещали что все фичи из коммерческой версии будут с некоторой задержкой переноситься в бесплатную. Разумеется, перенесено за эти годы примерно ничего, а бесплатная давно используется как бесплатный полигон тестирования.
Да там даже такая банальная вещь, как резолвить имя апстрима не один раз при запуске, а периодически, чтобы обновлять список бэкендов без переписывания конфига и костылей на Lua, есть только в платной версии, так что называть бесплатный Nginx решением для балансировки нагрузки — мягко говоря, преувеличение.
> Да там даже такая банальная вещь, как резолвить имя апстрима не одина чего его ресолвить - если фэйловера самому ресолвящему все едино нет?
Так и так пердолиться с костыленьем внешней подпорки. В красивом случае это циска с sla и динамическим свитчингом маршрутов. В общераспространенном - какая-нибудь вредная фигня, типа того же nlb.То есть перенос этих фич по одной все равно ничего бы не дал, они нужны комплексом.
> что называть бесплатный Nginx решением для балансировки нагрузки — мягко говоря,
> преувеличение.ну вот и остается - решением для отдачи нешифрованной статики, желательно - несложно организованной (потому что отсутствие htaccess таки мешает делать сложные вещи). Типа массовой раздачи mp4 прона.
Я для себя, любимого, примерно так и использую, тут он идеально подходит. welcome back to... 2006й какой-нибудь, наверное?
"а так классно все начиналось"
Если говорить о High Availability, то в чем принципиальная разница между Nginx и HAProxy?
Навскидку могу вспомнить только возможность пиринга stick-tables, но в Nginx вообще само понятие stick-tables отсутствует.
ну и соответственно - при свитче активной ноды - все кто успел подцепиться к сдохшей наблюдают таймаут или повисание модного-современного-аякснутого сайта, что вероятней.
При правильно настроенном фаерволе (-m conntrack --ctstate INVALID -j REJECT) — получают быстрый отвал. Для TCP-стека новой ноды эти пакеты являются "марсианами".
> ну и соответственно - при свитче активной ноды - все кто успел
> подцепиться к сдохшей наблюдают таймаут или повисание модного-современного-аякснутого
> сайта, что вероятней.А какие у аяксного сайта фундаментальные проблемы с тем что очередной XHR пойдет уже другой машине? Если не идиотничать - вроде бы никаких. Если это вебсокет какой был - ну вот тут пардон, отвалившаяся конекция это таки отвалившаяся конекция, переподнять ее все же придется.
Он про те запросы, которые шли через балансе прямо в момент его падения. Якобы HAProxy своей магией их восстановит, и клиент ничего не заметит.
Отсутствие в nginx/6ешплатно HA как факт - не позволяет говорить о нем вообще, вот в чем проблемка-то.Ни обмена информацией с другими узлами нет, ни интеграции с vrrp или еще каким механизмом redundancy, ни, естественно, подхвата сессий от сдохшего пира.
Все это вроде бы имеется в коммерческой версии - но за невменяемые деньги за каждую node и - в год.
> ни интеграции с vrrp или еще каким механизмом redundancyЗачем _приложению_ интегрироваться с VRRP? Ему достаточно слушать на VIP (с чем Nginx вполне справляется), все остальное выходит за прикладной уровень.
> ни, естественно, подхвата сессий от сдохшего пира.
А смысл подхватывать их на прикладном уровне, если таблица TCP-соединений не синхронизирована? Даже если VRRP перекинет на L3, на L4 пакеты отрезанных соединений на новом узле пойдут нафиг.
> Зачем _приложению_ интегрироваться с VRRP? Ему достаточно слушать на VIP (с чем
> Nginx вполне справляется), все остальное выходит за прикладной уровень.Пох всегда придумает как сделать криво, дурацки, дорого, хреново и максимально геморройно. А что, блаародный дон никогда не мечтал переписать весь существующий софт?! Экий лентяй этот блаародный дон! :)
Добавьте пожалуйста статус HTTP/3
nginx 1.19.2 с патчами HTTP/3 ещё не вышел https://hg.nginx.org/nginx-quic/tags
В июне 2020 гугл выпустил новую версию спецификации протокола QUIC, 29.
Так как формат протокола постоянно меняется, поддержка актуальной версии будет только в продуктах гугла.
Вот паразиты хотят захватизировать рынок. Нужно этих поганцев остановить и запретить пихать все подряд в Chrome. Где там межународая антимонопольная организация?
> Вот паразиты хотят захватизировать рынок. Нужно этих поганцев остановить и запретить пихать
> все подряд в Chrome.зачем? Пусть наоборот, пихали бы все свои бредовые порождения в свой чроме - по крайней мере будет четко видна граница между гуглом и worldwide web. Для первого клиент - чром, для второго - браузеры, все норм.
> браузерыАжно два: Safari и Edge.
Еще мозилла. Которая, впрочем, судя по последней новости - была.
> Еще мозилла. Которая, впрочем, судя по последней новости - была.Специально для этого комментария глянул статистику — 5%.
https://www.w3counter.com/globalstats.php
Ну того веба вне орбиты гугла не так чтоб вообще много и оставалось.
> Специально для этого комментария глянул статистику — 5%.А ведь я помню времена когда и 20% было. Погодите, скоро и этого не останется. А чего они будут делать то, уволив разработчиков? :)
Добавили в nginx-quic ещё 23 июня: "Currently we support IETF-QUIC draft-27, draft-28, draft-29"
https://hg.nginx.org/nginx-quic/rev/3c32717d7bb2
Да-да. С просьбами что-то добавить в nginx надо обращаться на форум Opennet.
Еще в вентиляционную решётку покричите - вдруг этажом выше разрабы сидят?
> Да-да. С просьбами что-то добавить в nginxдобавить вроде в статью просили
> Еще в вентиляционную решётку покричите - вдруг этажом выше разрабы сидят?А это смотря в какой тюрьме. А то шансы вполне могут быть.
Варез же.
Пора уже nginx сливаться с systemd в едином угаре ибо с каждый релизом они становятся ближе к комбайнам
Nginx умер, живэ F5!