Comments 44
Главное не забывать первопричину популярности nginx - скорость и легкость. Меня всегда настораживает разбухание чего-либо от мало кому нужных фич.
Так всё модульное. Если какие-то модули не требуются, то можно их не собирать, но смысла в этом большого нет, т.к. влияние на производительность от наличия модуля в сборке - чаще всего неизмеримо мало. Мы динамически собираем в основном те модули, которые устанавливают дополнительные зависимости.
Но вообще на разработку "мало кому нужных фич" нет времени. Количество запросов от сообщества сильно больше, чем ресурсов. Плюс технологии развиваются и конкуренты тоже. Если ничего не делать, то какое-то время можно за счет запаса инерции оставаться в тренде, но рано или поздно уйдешь на задворки истории. Естественно никто не будет делать ту или иную фичу по одному-двум запросам - разработка вообще дорогая, поэтому это возможно только на коммерческой основе.
Тут в оценках главное не впадать в субъективизм. Когда работаешь в одной/нескольких компаниях, то имеешь определенное представление о том, что нужно и что не нужно в рамках кейсов, с которыми сам сталкивался. А когда работаешь в вендоре ПО, будь то NGINX, Inc. ранее и теперь Angie Software - то имеешь дело с тысячами компаний и их кейсами, которые зачастую богаче всех твоих фантазий.
В конце-концов, посмотрите какое большое количество сторонних модулей для nginx написало сообщество. Многие из них очень популярны. Не стоит недооценивать модульность и расширяемость - это тоже всегда был значимый критерий успеха и мы трепетно поддерживаем совместимость со сторонними модулями.
P.S. Но вообще, если хочется ставший в какой-то степени каноничным nginx, который существовал с 2011 по 2022 год, то порекомендую freenginx, который разрабатывается Максимом Дуниным. Долгие годы без его одобрения в nginx не попадало ничего, а когда в F5 на его мнение решили наплевать, то ему пришлось сделать свой форк. У нас с ним разные взгляды на развитие, но желаю Максиму успехов. Какие-то полезные изменения мы в том числе портируем из freenginx и за это ему большое спасибо, что неустанно продолжает своё дело.
К вопросу о модульности.
Если взять spec файл от angie (almalinux 10), то можно увидеть что у вас, в отличии от nginx, 125 Source строчек.
И большая часть это "сторонние" модули, который не поддерживаются Вами напрямую.
Возможно это хорошее решение для Вашего продукта, но тем кто занимается сборкой под себя, приходится убирать лишние модули вручную и сравнивать spec для каждой новой версии вручную.
Есть ли вариант изменить Ваш spec так, чтобы можно было с помощью переменных окружения или другим способом можно было отключать не нужные модули?
Так, подождите, про письмо от ПОДДЕРЖКИ ХАБРА - это вы серьезно? ЧИВО БЛИН?!
Серьезно. У нас в телеграме уже больше тысячи подписчиков на новости и мы там выкладываем ссылки на статьи. Пользователи написали, что часть из них побанили после лайка нашей статьи.
P.S. Как по мне, то просто даже сама формулировка про "ошибочное представление, что продукты кому-то интересны" и "кружок с предвзятыми оценками" - это откровенное хамство.
@Boomburum жесть конечно ваши коллеги ущербно себя ведут.
Так, ну тут однозначно придётся провести воспитательную беседу, такого общения быть не должно ( Даже если кто-то из пользователей вёл себя недобросовестно и вывел на эмоции (как иногда бывает). Спасибо, что подсветили этот момент!
Не прокатило (с)
Спасибо!! Как раз собрался к Вам направить ребят, да решил глянуть комментарии.
Со своей стороны отмечу, что у нас в альте пакет angie есть и поддерживается (к альтернативному спеку даже и я, помнится, руки приложил -- но нашёлся более молодой и энергичный майнтейнер, с доводами по разнице подхода которого я в итоге согласился; зато собрал на эльбрусе).
PS: "доводы" организма, то ли по недоразумению попавшего на работу с людьми, то ли вставшего сильно не с той ноги в тот день -- больше напоминают проецирование хорошо знакомых методов работы совсем другой тусовочки; меня в таковой тоже не любят ;-)
BTW адрес получателя какой-то странный
А в чем вообще смысл пользоваться nginx-подобными продуктами в 2k25, кроме как "наши сисадмины отстали от жизни и не могут настроить envoy или хотя бы traefik"?
Оно когда-то было хорошо, конечно, во времена Апача и cgi на перле, но в чём смысл держаться за это сейчас?
Или весь вопрос в наличии справки о разрешённости разрешения?
Например потому, что nginx-подобные продукты во многом лучше. И уж точно производительнее и устойчивее к пиковым нагрузкам, чем тот же Traefik. Не стоит так оголтело записывать админов большей части интернета и крупнейших компаний мира в "отставшие от жизни".
Разумеется у Traefik и Envoy есть свои плюсы. Все разработчики друг на друга смотрят и многие полезные фичи перенимают. Тут нет никакого однозначного лидера, но есть разные подходы и предпочтения в цвете фломастера.
Что полезного есть в envoy или хотя бы traefik, чего нет в nginx?
Мммм, даже не знаю.
Может быть нормальная динамическая конфигурация, а не reload&pray с "сейчас я буду рвать все вебсокеты"?
Может быть нормальные политики управления трафиком на L7, с ретраями, circuit breaker'ами, и прочей прелестью, которые можно просто сконфигурить и оно будет работать?
Или это отсутствие странных сюрпризов, вроде того, что при любом матче локации nginx ходит в файловую систему, даже если в локации нет ничего кроме proxy_pass?
Может быть автодискавери сервисов? Система плагинов и фильтров без "а давайте мы просто всунем код на луа вот прямо сюда"?
Наверное это я тупой и старый и хочу странного. Но почему-то конфиги nginx которые делали нужные вещи, очень сильно напоминали ёжа из костылей. А конфиги envoy - напоминали ну, просто конфиги. И их можно было просто менеджить без наличия штатного шамана, гуляющего в код nginx и знающего, почему вот эту хрень рядом с вот этой использовать ну никак нельзя.
Может быть нормальная динамическая конфигурация, а не reload&pray с "сейчас я буду рвать все вебсокеты"?
Веб-сокеты не рвуться, а дорабатывают дальше, если только специально не настроено разрывать долгие соединения через таймаут.
Может быть нормальные политики управления трафиком на L7, с ретраями, circuit breaker'ами, и прочей прелестью, которые можно просто сконфигурить и оно будет работать?
В свое время пришлось повозиться с Envoy и у меня создалось впечатление, что его конфигурация вообще не для человека сделана, а для машин и кишки торчат наружу. Что само по себе конечно имеет свои плюсы, но и имеет и минусы. Для кого-то они существенны, для кого-то нет. Чтобы удостовериться, что это не одному мне так показалась - спрашивал ещё независимых мнений и получил подтверждение своему впечатлению.
И не даром же, даже при наличии Envoy, ингресс-контроллер на базе nginx набрал большую популярность. И коммерческая версия такого ингресс-контроллера пользуется спросом.
Или это отсутствие странных сюрпризов, вроде того, что при любом матче локации nginx ходит в файловую систему, даже если в локации нет ничего кроме proxy_pass?
Это не так. И никогда такого не было ни в одной версии. `proxy_pass` однозначно устанавливает обработчик на location, который вызывается в content-фазе. А матчинг - это просто префиксное дерево и списки с регулярками. Там вообще нет сисколов. То, что вы описали, больше похоже на некоторые моменты в Apache.
Ну, а если указали try_files - назначение которого буквально кричит из названия директивы, то тут странно удивляться.
Может быть автодискавери сервисов? Система плагинов и фильтров без "а давайте мы просто всунем код на луа вот прямо сюда"?
Экосистема модулей для nginx одна из самых больших. Луа - тут лишь один из сторонних модулей и не надо вставлять код на луа, это скорее про OpenResty, что суть отдельный проект со своей идеологией ближе к серверам приложений.
Наверное это я тупой и старый и хочу странного. Но почему-то конфиги nginx которые делали нужные вещи, очень сильно напоминали ёжа из костылей. А конфиги envoy - напоминали ну, просто конфиги. И их можно было просто менеджить без наличия штатного шамана, гуляющего в код nginx и знающего, почему вот эту хрень рядом с вот этой использовать ну никак нельзя.
Абсолютно нормально если вы лучше познакомились с одним проектом и плохо знаете другой. Плюс у всех разные подходы и взгляды на то, а как должна выглядеть конфигурация. Выше я писал про свое впечатление от того же Envoy. А кто-то вообще хочет, чтобы всё мышкой тыкалось и таких очень много. Прекрасно, что на любой запрос есть свое решение.
P.S. У меня есть понимание как сделать конфигурацию более гибкой, простой и интуитивно понятной. Но для этого нужно время и по опыту NGINX Unit, где подход к конфигурированию был принципиально другим - понятно, что какие-то радикальные идеи и изменения тоже не находят отклика в массах, т.к. есть большая инерция мышления и есть в этом также существенный момент субъективизма.
Это не так. И никогда такого не было ни в одной версии.
Этого не может быть, потому что этого не может быть никогда, да.
И это не лично я на эту мерзость убил неделю своего рабочего времени, чтобы выяснить, что она каким-то хитрым образом делает, емнип, stat на путь $dockroot/location всегда, если root в конфиге определён.
Ах да, у нас же есть ещё смешное наследование root, которое добавило перчинки в инвестигейт.
ингресс-контроллер на базе nginx набрал большую популярность.
Как же хорошо, что это решето наконец закопали. Что до коммерческого контроллера, у меня от чтения доков на него осталось стойкое ощущение продукта для матёрых nginx'еров, чтобы им было удобнее тащить свои привычки и подходы в k8s. Возможно для компаний в которых есть любители nginx, такой подход рационален или оправдан сентиментальными соображениями.
Абсолютно нормально если вы лучше познакомились с одним проектом и плохо знаете другой.
Я начинал своё знакомство с миром web-серверов именно с nginx. И именно слишком близкое знакомство с его ограничениями и особенностями и заставило меня перейти на более современные альтернативы.
Ладно, впрочем, всё это разговоры в пользу бедных. Извините за потраченное время и если прозвучал слишком резким.
И это не лично я на эту мерзость убил неделю своего рабочего времени, чтобы выяснить, что она каким-то хитрым образом делает, емнип, stat на путь $dockroot/location всегда, если root в конфиге определён.
`root` в конфиге всегда определен. У него есть значение по умолчанию, но stat() при этом не делается (и зачем?). Игорь всегда очень трепетно относился к сисколам и минимизировал их количество.
Я понимаю, что наверное вы что-то наблюдали. Такое запросто может делать какой-нибудь сторонний модуль, этого исключать нельзя. Ванильный nginx так не делает. В любом случае - правильным действием было бы не тратить время на поиски, а пойти и задать вопрос разработчикам, благо я, Максим и многие другие коллеги регулярно в списках рассылки отвечали пользователям.
Вы сравниваете опенсорсные или коммерческие версии? У этих продуктов отличается логика, но возможности в общем-то сопоставимы, если говорить о платных версиях. В бесплатных доступная функциональность урезана нарезана по-разному: каджый дарит вам в придачу свои уникальные наборы граблей - и свой уникальный опыт взаимодействия с ними.
Как-то писал предложение насчёт документации Bacula -- мол, насчёт automatic volume retention бы подсветить. Через какое-то время откликнулся сам Керн и в извинительном тоне сообщил, что это у них проходят на курсах.
А без этой настройки что ленточки, что диски когда-то закончатся и выкорчевать уже не нужные данные без переинициализации, может, вариант и есть -- но я тогда не нашёл (благо бэкапница была в пристрелочной эксплуатации, на рабочей затем этот момент учёл).
Честно, настройка traefik в coolify для меня каждый раз слезы. Все эти причудливые ACME, http to https и прочее, что настраиваешь периодически и за эти несколько месяцев напрочь забываешь, а в интернете все очень плохо с гайдами. А еще часть под старую часть под новую, нейронки бред генерят к тому же)
Так пишите документацию! Хотите -- можете у нас на альтовой вики (есть и англоязычная; после регистрации закиньте письмишко с аккаунтом на mike@altlinux.org, выпишу подтверждение оперативно -- а то регистрационный спам в какой-то момент повалил со страшной силой).
Знаете, как я свою учился писать? Как-то лет двадцать назад в рассылку community@ отправил вопрос по хитрой настройке двухголового радеона (заказчику понадобилось, думаю, вдруг кто подобное уже стряпал). Ответов не было, к вечеру докурил маны и доэкспериментировал на стенде до победного -- и постеснялся, что ли (или поленился?) в рассылку отправить наработанный xorg.conf ответом на свой же вопрос.
В общем, через год наткнулся на единственный ответ в интернете на то, как сформулировал ещё один поисковый запрос. И это было моё письмо. Без ответа...
О как ) сео)
Удачи с продуктом, Заур!)
Главное не создать ещё одно полуживое НКО подающее признаки жизни раз в год.
Для справки, что есть уже сейчас в рамках развития и содействия российским open source проектам:
FOSS — Всероссийский конкурс (акселератор) проектов с открытым кодом в рамках «Кружкового движения». Живы и работают.
АНО «Открытый код» — родилась в 2023 году. С тех пор в публичной плоскости никак свою деятельность не демонстрировали. За 2024 судя по бухгалтерской отчётности никакой финансовых операций не вели. Пока признаков жизни не подают.
Косвенно можно и меня с моим АНО «СЭРПАС» и соревнованиями по программированию на Эльбрусах (e2k) записать. Конечные цели развития российских проектов с открытым исходным кодом с моими совпадают.
Наши реализации коллеги затянуть к себе не могут, ведь, о ужас, им придется написать, что это разработали русские товарищи.
Вы так думаете? Может быть это, потому что с вами работают люди из "Сбера, Касперского, Ростелекома, ГК Астра" (оставил самых выдающихся), а еще вы "эксперементировали с «Эльбрусом», получили лицензии ФСТЭК и начали сертификацию продуктов"? Ну знаете, все вот эти телодвижения, которые в 2025 году являются однозначной черной меткой для всяческих "недалёких русофобов"?
Лично от себя, давнего пользователя nginx, могу вам только максимальных успехов пожелать: билдов под МСВС и Астралинукс, сертфикацию вплоть до гостайны, портов на Эльбрус и внедрения в ВС РФ. В общем, вершин, к которым стоит стремиться айти-компании в 2025.
Отличный пример лицемерия и инфантилизма. Видимо коммиты Максим Дунина во freenginx какие-то более чистые, что ли... без черных меток, правда ведь?! Но только почему-то вот беда, их также игнорируют. Может вы знаете почему?
Но если тот же код послать отдельно, без копирайта, то всё сразу хорошо! Примерно как углеводороды, когда перекачиваются на танкер под другим флагом или пересекают границу третьих стран, то сразу становятся вдруг правильными, с духом свободы, как говорится.
А то, что F5 поставщик военных ведомств США, а за безопасность там отвечал вербовщик из ЦРУ, который ранее занимался внедрением в информационные системы других стран, о чем сам не стесняясь рассказывал в интервью - это, как мы знаем, другое.
И конечно же, ФСТЭК - плохо, а FIPS 140-2 и NIST 800-53 - это хорошо, т.к. стандарты правильной страны. И судя по всему, вы даже не знаете о чем там речь, но заранее имеете мнение.
Лично от себя, давнего пользователя nginx,
Прекращайте срочно использовать, там много кода написано теми самыми нами. Это теперь нерукопожатный код с черной меткой.
К сожалению, ответить вам по существу сейчас является уголовной отвественностью в государстве, на которое вы теперь, по сути работаете и гражданами, которого мы с вами оба являемся. Поэтому добавить мне нечего кроме, повторюсь, удачи вам работать на сбербанк, Астру и ФСТЭК в 2025ом. История рассудит, Микорд уже рассудила.
А я вам отвечу по существу, потому что вы реально видимо не понимаете насколько смешные вещи пишите. Ругать за наличие сертификации ФСТЭК - это все равно, что ругать строителя, который прошел аттестацию на знание техники безопасности, надевает каску на стройке и регулярно меняет страховочный трос.
Об остальном у вас такие же "глубокие" представления. Советую почитать статью - возможно просветитесь. Впрочем, если вы живете в парадигме, что всё государственное - зло по умолчанию, то едва ли поможет. Но в таком случае, я не очень понимаю как вы живете, ведь без взаимодействия с государством вы ни ИНН не получите, ничего не сделаете. Поэтому сильно подозреваю, что все же вы с государством тоже регулярно взаимодействуете и налоги платите, а потому просто тут лицемерите, либо уже поставили на себе такую же черную метку.
Спасибо за ваш ответ по существу про сертификацию ФСТЭК человеку, который тут еще в 2011 писал тут про МСВС. И сам проходил эти сертификации не раз до 2014 года.
Очень солидно для лид-разработчика прицепиться к куску текста, выдрать его из контекста и этим пенять, делая вид, что действительно не понятна суть претензий к людям, которые вообще подаются на сертификацию ФСТЭК и работают с российскими государственными конторами сейчас от мирового сообщества. Совсем не глупо и не инфантильно. Прям таки буст доверия к вашему продукту.
И не надо тут Дунина вмешивать. Несправедливость претензий к нему, никак не меняет уровень справедливости недоверия к вашей конторе.
делая вид, что действительно не понятна суть претензий к людям, которые вообще подаются на сертификацию ФСТЭК и работают с российскими государственными конторами сейчас от мирового сообщества
С чего вы решили, что я делаю вид? Да я реально не понимаю. Объясните мне, чем российские государственные конторы отличаются от государственных контор в других странах? Поскольку мы оппонируем к продукту американской конторы, то давайте их сравнивать с американскими государственными конторами. Чем российские хуже американских? В чем тут справедливость недоверия?
У меня вообще очень обостренное чувство справедливости. Я не терплю никакой дискриминации. А для меня это натуральная дискриминация. Человек работал в Сбере - о боже, сразу недоверие, точка. А вот если в ЦРУ, то тут другое, тут доверие. И я не понимаю почему одну и ту же фичу нужно делать два раза или исправлять несколько раз один тот же баг. Мы что-то исправили, а nginx потом у себя исправляет спустя время, вместо того, чтобы подтянуть наше исправление. Кому от этого легче?
К счастью, мировое сообщество всё же разумнее, чем некоторым кажется, а потому у нас растет число пользователей Angie и в США, и по всему миру. А мы всем рады и держим зеркало на гитхабе, со всеми общаемся, переводим документацию на разные языки мира.
Хорошо, что с 2014 за безопасность начали браться всерьёз (нам в scheme'овом alterator, например, нашли одно место, которое сочли нужным переписать иначе) и такие как Вы "эти сертификации" проходить, видимо, чутка перестали.
Бгг, билды под труп и гоп-контору в чисто американском стиле, которая "облагодетельствовать" может разве что сожрав -- это вообще не то, к чему стоит стремиться. Но Вам и подобным это ещё предстоит понять. Как и то, что бабки не главное.
// отправлено с моего "Эльбрус-16С"
Первая картинка кгам. Nginx (и Agnie по тому же) никогда не были конкурентами Apache. Nginx был стероидом, но не соперником. При политизированности поста это выглядит так себе. Как и цифры надоев. Читать противно максимально.
А теперь в основную ветку nginx хотят включить плохонькую реализацию поддержки http/3 в прокси. Наши реализации коллеги затянуть к себе не могут
А можно осветить это подробнее. А то это выглядит как голословный, прости Господи, высер. И агрессия. Даже не пассивная
В 2023 году в Angie была реализована поддержка проксирования по протоколу HTTP/3. Реализацией занимался один из самых опытных разработчиков, который проработал в nginx c 2012 года вплоть до закрытия московского офиса в 2022. Он же до этого работал с коллегами над HTTP/3 в серверной части nginx, поэтому прекрасно знаком с протоколом и всеми нюансами. Ещё тогда в конце 2023 мы решили закотрибьютить эту функциональность в nginx: https://mailman.nginx.org/pipermail/nginx-devel/2023-December/THMZAQ36SN5BICJSCLX6FLEUI45FHR4H.html
Кроме краткого общего обмена мнениями с Максимом никакой реакции на патчи не последовало (на всякий случай поясню, что на момент 2023 года список рассылки разработчиков был основным способом контрибьюта в nginx, а Максим уже не работал в F5). Но на конец 2025 года они уже полгода упорно практически с нуля переизобретают велосипед.
Проксирование HTTP/3 в Angie разрабатывалось по заказу одного очень крупного зарубежного облачного провайдера и на текущий момент тщательно оттестировано в боевых условиях. В nginx сейчас, игнорируя наш опыт, будут идти по граблям ещё после коммита и доводить до ума.
Мне понятно почему так происходит. Разработчики в этом не виноваты, а виноват в этом определенный корпоративный маразм. Есть ли от этого кому-то польза? Нет, в итоге страдают все.
Это лозунги. Где хоть какая-то информация о граблях? При всём уважении к Максиму. Я даже верю, что может так и есть, но я этого пока не вижу даже в описаниях. Вижу только "они не взяли готовое". И что за зацикленность русские не русские? У энтерпрайзных компаний (любых) может быть 100500 причин (и 100499 из них глупые) не брать чужой код и наработки. И да, с какого перепугу ты разговариваешь со мной как-будто бы первый раз меня видишь и рассказываешь мне истории времён, когда у меня уже волосы седыми были? Знаю я прекрасно как кто куда и почему развивался
Давай раскроем для читателей тему, что там не так или так
Это лозунги. Где хоть какая-то информация о граблях?
Изначально версия nginx была отвратительна хотя бы тем, что там просто дублировалось 6 десятков директив из существующего proxy-модуля: https://github.com/arut/nginx/blob/5d015359ec2452e508949f24a823fa3b20cb101e/src/http/v3/ngx_http_v3_proxy_module.c#L277 и тысячи строк копипасты.
Далее, судя по всему, кто-то подсказал или у нас подсмотрели, что наверное это очень плохая идея и так делать не нужно.
Вы хотите, чтобы лично для вас сделал отдельное ревью кода, который ещё к тому же даже не в релизе и уже после написания статьи поменялся несколько раз? Или вы хотите, прибегая к развешиванию ярлыков в стиле "это лозунги", "это агрессия", запретить кому-то иметь и выражать своё мнение на основе опыта? Спасибо, мне есть чем заняться более полезным. Оставайтесь при своем мнении, задачи кому-то что-то доказать - нет.
У энтерпрайзных компаний (любых) может быть 100500 причин (и 100499 из них глупые) не брать чужой код и наработки.
Прекрасно. А у меня есть право объяснять это глупостью, учитывая, что контрибьют следует всем публичным гайдлайнам и не нарушает ни чьих прав, а никакой другой причины публично озвучено не было.
И да, с какого перепугу ты разговариваешь со мной как-будто бы первый раз меня видишь и рассказываешь мне истории времён, когда у меня уже волосы седыми были? Знаю я прекрасно как кто куда и почему развивался
С кем-то вы меня видимо путаете. Не припоминаю, чтобы мы лично были знакомы.
И что за зацикленность русские не русские?
Вам мерещится. Я в своем сообщении вообще ни одной национальности не упоминал.
Дочитал. Кто вообще пустил этот комок агрессии сюда? Что я сейчас прочитал?
3 года Angie