Представлен первый выпуск новой основной ветки nginx 1.25.0, в рамках которой будет продолжено развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.24.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.25.x будет сформирована стабильная ветка 1.26...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=59186
Что на это ответит Angie?
git cherry-pick
Не знаю какой из тебя айтишник, но петросян так себе
> git cherry-pickУ этих извращенцев hg до сих пор.
на нем получится написать websocket-приложение на node.js? встроенным модулям доверия нет, а тут пацаны знают что делают, прошаренные
Как Golangdev я рекомендую использовать Traefik. В нём нет проблем с вебсокетами.Также - он хорошо работает с докером/облаками/кубером, то что нгинкс давал только в платной версии и хз, юзабельно ли, тут это бесплатно.
Отвечая на свой вопрос: можно, но вебсокеты вроде бы всё равно реализованы на яваскрипте, а не в самом nginx unit. Причем просто форкнули 4 года назад библиотеку websocket, и больше ее вообще не трогали.> Node.js: introducing websocket support.
> 4 years agohttps://github.com/nginx/unit/tree/master/src/nodejs/unit-http
Страшновато.
Нет. Nginx он как Жигуль. Ты его подкрутишь вроде едет, работает. Но круиз контроль или слежение за дорогой ты в нем никогда не получишь.
Готовить не умеешь его.
Радует в общем-то, что лет через 5 ты уже не будешь ни водить жигуль, ни вебсерверы запускать - роботом заменят.
> Нет. Nginx он как Жигуль. Ты его подкрутишь вроде едет, работает.Его подкручивать надо 1 раз в жизни, в отличие от. Потом он просто работает. Конфиг 12-летней давности до сих пор, вот, заводится.
> Но круиз контроль или слежение за дорогой ты в нем никогда не получишь.
Это как? Там все есть. Получше чем у многих других. Но для начала - должно ехать. И с нормальной скоростью. Это оно точно умеет. В отличие от всякой лабуды типа опача. Зачем мне круиз контроль если драндулет с проржавевшим двиглом более 5 км/ч не выжимает? В таком виде вообще возня с ним того не стоит.
Не совсем понятно в чем вопрос? nginx тебе может сделать проксирование начального http запроса со всеми нужными хедерами, а потом всего что пойдет дальше по websocket соединению. Еще можешь настроить tls, чтобы соединяться по wss://Дальше работает твое приложение хоть на node.js, хоть на Си, это неважно.
Но главное, при чем тут HTTP/3? В вебсокет приложении обычно только один http запрос - начальный, для установления websocket соединения.
Судя по всему пациент спрашивал про Unit, а не про nginx
Какой-то альтернативно одаренный персонаж же в хвост новости засунул еще текст про Unit
Очень хорошо, однако нет возможности собрать с gnutls. Также не очень понятно, как пробрасывать UDP через него.
HTTP3 != HTTP 3.0
http/3, так что шутка не вышла
HTTP/3 = HTTP 0.333...
> HTTP/3 = HTTP 0.333...Ну тогда HTTP/0.9 == HTTP 1.1... интересно IETF в курсе? Пора RFC апдейтить.
Отлично! На своих сервисах давно выключил HTTP/1.x скоро дело и за HTTP/2.
> На своих сервисах давноДа на локалхосте вообще без разницы, можешь не париться.
Понимаю, что бесполезно о чем-то серьезном писать опеннетовским клоунам, но все жеВсе что ниже http/2 и правда давно можно отрубать
Ну просто потому что живой клиент к тебе не придет по 0.9, 1.0 или 1.1, по ним уже давно приходят только какие-то дикие боты
Мы года 2 назад провели анализ логов за полгода и зарубили 0.9, 1.0 и 1.1 на уровне WAFА вот отрубить http/2 у тебя не выйдет ни через год, ни через 10
http/3 работает по UDP, а вот тут кроется засада
Всякие корп.файрволлы, всякие открытые сети в метро и точках быстрого питания, все они режут все подряд кроме 80/tcp и 443/tcp
Некоторые российские ОПСОСы своим клиентам не совсем режут, но по скорости до пары килей в секунду все кроме отдельных портов(например 1191/tcp, 1191/udp и 51820/udp они не трогают, а если поднимешь себе OpenVPN на 1192/udp или там wireguard на 51821/udp, то у тебя скорость будет в эту самую пару килей в секунду)Так что даже если ты бодро внедришь у себя http/3, то тебе придется оставлять еще и http/2, что бы по нему работали все кому режут udp
> http/3 работает по UDP, а вот тут кроется засадаПри том это будут проблемы вооооон тех господ, решивших что полисовать udp это круто.
> Так что даже если ты бодро внедришь у себя http/3, то тебе
> придется оставлять еще и http/2, что бы по нему работали все кому режут udpИли пусть не работают себе наздоровье. А заодно порвут саппорт вон тех на джек юнион, если им доступ к ресурсу надо было. Зачем делать из чужих проблем свои? Что характерно т.к. случай будет не единичный - то таки саппортов порвут.
> Все что ниже http/2 и правда давно можно отрубатьЧтобы что? С какой целью?
Что бы не поддерживать то, что не используется
Отключение того, что не используется уменьшает периметр атак
Но ты о таком не слышал, да?
Атак на твой мозг рептилоидами с Нибиру? Тем тебе не http надо отключать, а шапочку из фольги надевать.
> Атак на твой мозг рептилоидами с Нибиру? Тем тебе не http надо
> отключать, а шапочку из фольги надевать.HTTP/1 с своими текстовыми заголовками дает неиллюзорный attack surface, особенно если есть деление на фронт и бэк, по пути какой либо прокси, аппсервер какой, или что там еще.
Видите ли текст можно парсить немного по разному, а когда фронт и бэк видят мир по разному, реагируя на нарушение спеков в парсинге текста несимметрично, атакующий устраивает знатный хаос. И вот уже его запрос прилепляется к вашему. Под вашей авторизацией и всем таким. Можно от вашего лица вон там в админке что-то сделать. Или сообщение запостить. Или что там еще. Если по пути HTTP/2 от и до - там такие номера сложнее уже. И львиная доля проблем как раз из текстовой природы H1 и фривольных идей кодеров как по их мнению надо текст обрабатывать vs то что в спеках vs то что другая группа кодеров на эту тему себе мнила.
> Атак на твой мозг рептилоидами с Нибиру? Тем тебе не http надо
> отключать, а шапочку из фольги надевать.Говорил один умный еврей не метать перед вами жемчуг, но ок, в трех классах ЦПШ ты этого учить не мог, это да
Смотри. У тебя есть веб-сервер. Он торчит наружу портами, потому что он - веб-сервер. И вот у тебя в нем есть реализации протоколов http/0.9, http/1.0, http/1.1 и http/2
Это все разный код, потому что прокотолы разные
В каждом потенциально есть уязвимости, переполнения буферов и прочее, никто не идеаленИ вот ты набрав статистику видишь, что у тебя валидные клиенты ходят только по http/2, а по старым протоколам ходят только какие-то кривые боты
Что произойдет если ты выключишь поддержку старых протоколов? Да еще и зарубишь обращения по ним на WAF? У тебя уменьшиться периметр атаки, так как ты перестал использовать кучу старого необслуживаемого кода, но при этом у тебя все прекрасно с доступом для валидных клиентов, потому что они ходят по http/2
Вкусный смузи? Веганский это без гмо?
можешь вообще отключить свой сервис. Выростет уровень безопасности, в плане посещаемости ничего не изменится :)
И как к тебе гугло-яндо боты попадают?
Что им там делать если там один динамический контент?
HTTP/2.0" 200 161512 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)Они ходят по 2, а не по 0.9, как думают местные мамкины крякеры
> HTTP/2.0" 200 161512 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
> Они ходят по 2, а не по 0.9, как думают местные мамкины крякерыЧто же вы так самокритично?
200 "GET /robots.txt HTTP/1.1" 25 - - - "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
200 "GET /favicon.png HTTP/1.1" 860 - - - "Mozilla/5.0 (compatible; YandexFavicons/1.0; +http://yandex.com/bots)"
200 "GET /robots.txt HTTP/1.1" 25 - - - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
200 "GET / HTTP/1.1" 1733 - - - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
200 "GET /css/style.css HTTP/1.1" 1734 - - - "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/106.0.5249.119 Safari/537.36"
200 "GET / HTTP/1.1" 1733 - - - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
404 "GET /favicon.ico HTTP/1.1" 153 - - - "Googlebot-Image/1.0"
200 "GET / HTTP/1.1" 1733 - - - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
200 "GET /favicon.png HTTP/1.1" 860 - - - "Googlebot-Image/1.0"
200 "GET /favicon.png HTTP/1.1" 860 - - - "Googlebot-Image/1.0"
404 "GET /favicon.ico HTTP/1.1" 153 - - - "Googlebot-Image/1.0"У меня только bing заходит по 2.0, все остальные по 1.1.
> У меня только bing заходит по 2.0, все остальные по 1.1.Скорее всего проблема у тебя с http/2
Пробовали заходить, не смогли, отметили, что у тебя только 1.1 работает и ходят по немуУ меня 10 проектов совершенно разной направленности, везде поисковые боты ходят по http/2
...А потом и за HTTP/3 :-)
> нгинксРазве оно ещё не устарело? Что сейчас модно-молодёжно и смузи-вэй?
См. мой коммент выше. Омоложение и захлеб смузи гарантирую %)
nginx до сих пор не умеет делать реверс прокси для http/2. Он устарел как мамонт. HAProxy, Traefik наше всё.
Умеетhttps://docs.nginx.com/nginx/admin-guide/web-server/reverse-.../
Там ни слово про HTTP/2 ты просто так ссылку дал не читая? Возьми HTTP/2 сервис и зареверсься на него через nginx и ничего не будет работать.
А зачем?
http/2 без tls бессмысленен. А если reverse proxy проксирует с tls, то либо вы - cloudflare, либо явно делаете какую-то чушь.
Например для разработки и внутренних сервисов. Есть готовые продукты которые уже http/2 only. Тем более та же HAProxy отлично работает для данных задач. И лишних глупых вопросов не задаёт. Так что nginx остался далеко в прошлом его функционал как веб сервера уже давно остановился в развитии.
> Например для разработки и внутренних сервисов. Есть готовые продукты которые уже http/2
> only. Тем более та же HAProxy отлично работает для данных задач.
> И лишних глупых вопросов не задаёт. Так что nginx остался далеко
> в прошлом его функционал как веб сервера уже давно остановился в
> развитии.Чувак, с функциями веб-сервера у него, как раз, все идеально
Работает, как швейцарские часы
Реверс-прокси же это не функция веб-сервера, а то ты так еще сквид объявишь веб-сервером
Envoy proxy. Но его еще нужно научиться конфигурировать ибо по сравнению с nginx его конфиг выглядит как космический корабль.
Можно Istio взять чтоб все "из коробки" было.
> конфиг выглядит как космический корабльУже не проблема когда есть chatgpt.
>> конфиг выглядит как космический корабль
> Уже не проблема когда есть chatgpt.Так это, попросите его нарисовать в каде варпдрайв чтоли? Задолбало же на керосиновх ракетах летать. Даешь нормальные космические корабли. И нахрен конфиги.
Конфиг там соответствует его внутреннему устройству, как и в nginx. Если не apt install и копипаст, а хотя бы 15 минут почитать документацию, то никаких проблем.
Обновился но не работает директива http3_push_preload on; ее переименовали или убрали кто знает?
Пуши же закопали. Или это только для второго HTTP было?