LINUX.ORG.RU

Вышел релиз nginx 1.17.9

 


1

1

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

  • Изменение: теперь nginx не разрешает несколько строк «Host» в заголовке запроса.
  • Исправление: nginx игнорировал дополнительные строки «Transfer-Encoding» в заголовке запроса.
  • Исправление: утечки сокетов при использовании HTTP/2.
  • Исправление: в рабочем процессе мог произойти segmentation fault, если использовался OCSP stapling.
  • Исправление: в модуле ngx_http_mp4_module.
  • Исправление: при перенаправлении ошибок с кодом 494 с помощью директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
  • Исправление: утечки сокетов при использовании подзапросов в модуле njs и директивы aio.

>>> Changelog

★★★★★

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

Жду традиционный поток петрасянства про Рамблер и «им вообще кто-то пользуется?». Одно то что традиция глупа, не значит что ей можно манкировать. Или значит?

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

А какие новости кстати? С Сысоева подписку сняли, дело прекратили?

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

Минорка да еще в девелоп ветке, не интересно.

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

кто им пользуется, кроме больших компаний

Я например даже на локалхосте его гоняю, потому что мне проще хостнейм запомнить, чем на каком там порту у меня висит одна из пары десятков вебморд, страничек мониторинга и разрабатываемых проектов. С другой стороны, чего-то круче терминирования ssl и последующего проксирования (чаще всего по RR) и раздачи статики я даже в продакшне не видел чтоб с ним делали.

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

С другой стороны, чего-то круче терминирования ssl и последующего проксирования (чаще всего по RR) и раздачи статики я даже в продакшне не видел чтоб с ним делали.

вот и я так же. В последнее время подумываю перейти на чото более легковесное

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

Я бы переходил не на легковесное (nginx-то сам по себе достаточно легкий), а на что-то более фичастое - например коммерческий nginx имеет апишку для динамической конфигурациии, или может прибивать каждого пользователя к одному бэкенду все время (стики-сессии), чего опенсорсными вариантами типа айпихэша не получится так-же хорошо сделать. Понятно что нужно плясать от потребностей, но мне кажется проще ядро-два виртуалке выдать или там рамы добавить на сервер и использовать что-то жирное, что будет такое уметь, чем пытаться запилить самостоятельно. Хотя можно просто купить nginx+.

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

Стики сессии делаются выдачей кук с номером сервака и последующим раскидыванием запросов по сервакам через map таблицу соответствия куки и сервера (ну или даже через банальный if). Так что для этого не нужен nginx+ P.S. Более того, есть как минимум один сторонний модуль к опенсорс версии,который реализует стики сессии, но я его не юзал

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

Не пользовался, так что ничего не могу сказать.

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

Гладко было на бумаге, ага. Что будет если один из бэкендов ляжет? Как будешь размазывать нагрузку, бэк должен знать сколько через балансер проходит? Как будешь эти куки реализовывать в каком-нибудь интерпрайз-легаси десятилетней давности? Nginx+ своими стикисессиями все это делает сам, только бабло заноси. Про опенсорсный модуль не скажу, возможно он решает эту задачу (я знаю что он есть, но я не пользовался им), но в платном nginx куча других плюшек есть, ради которых его можно купить, плюс в интерпрайзе принято обычно покупать что-то, что имеет какую-то поддержку, чем катить непонятно что, пусть и бесплатное. А не в интерпрайзе я не представляю зачем это может потребоваться - у нас была дебильная индусская аппликуха, с которой кроме как с этими сессиями иначе не получалось, в "нормальных" условиях все можно пофиксить или вообще даже не сталкиваться с такой проблемой. Алсо, есть например haproxy, который из коробки предоставляет этот функционал.

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

Первый раз клиент посылается на случайный сервер, там получает куку. В случае падения посылется на случайный из оставшихся серваков (прописаны backup серваки). Нджинкс может и выдавать куки сразу, если бек не может.

Это работающая в проде схема, еслм что

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

У тебя есть пять серверов бэка. Пришло пять клиентов. Их равномерно размазало по бэку, каждый получил куку с номером сервера. Четыре из пяти серверов упали, клиентов согнали на одну оставшуюся бэк-ноду. Тут поднимаются те четыре сервера. Как будешь раскидывать клиентов? Бэк должен знать что сервера поднялись и "отозвать" куку? Или nginx просто сам должен обнулять в этот момент куки всем клиентам? А если у тебя там стопицот клиентов, и сначала упало два сервера, потом они поднялись и тут же упали другие два? Плюс при всем при этом очень не желательно на самом деле клиентов перебрасывать между серверами, не просто же так мы их прибиваем.

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

Это работающая в проде схема, еслм что

Так у меня сейчас, например, в проде и RR нормально работает, потому что наконец-то начали делать нормальный stateless-бэк. Хорошо что у вас проблема решается какими-то простыми способами. В компании где я работаю в свое время так натанцевались в попытках самостоятельно все нюансы предусмотреть и закостылить, что в один прекрасный момент закупили nginx+.

anonymous ()
Ответ на: комментарий от anonymous
  1. Зависит от времени сессии клиента. Если часто приходят новые клиенты и время сессии небольшое, то само раскидает

  2. Ситуация «упало 4 из 5 серверов» не норма по определению. Поэтому в этой ситуации поднимут меня, а я просто «выключу» сервак, который собрал на себя клиентов, когда остальные серваки поднимуться.

  3. При желании можно реализовать и раскидывание клиентов обратно на тот сервак который у них был

в один прекрасный момент закупили nginx+.

Тоже выход, само собой. Не спорю, что более лёгкий. Ну и поддержали разрабов. Молодцом!

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

Да, тоже от этого подгорает. Как в свое время от шуточек про 502.

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

Четыре из пяти серверов упали

Тут поднимаются те четыре сервера

сначала упало два сервера, потом они поднялись и тут же упали другие два

Как интересно в этих ваших энтерпрайзах!

Поработал - считай, на аэробику сходил.

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

Терминирование SSL, раздача статики, проброс запросов на php-fpm. В одной инсталляции запросы пробрасываются на бэк где тот же nginx+php-fpm (так было архитектурно проще). Мне с nginx вполне удобно, пробовал apache крутить (как помойку для легаси которое лень отучать от .htaccess), грязно ругался. Принципиально я не против скипануть на что-то с более гибким конфигом, но во-первых лень искать это что-то, во-вторых не готов платить за это значительной просадкой производительности

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

проще купить готовое, чем костылять самому.

граммар-наци модэ он
костылять - это метод самообороны инвалида
а в ИТ мы костЫлим, а не костыляем

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

Ну это как посмотреть. Мне порой не хватает чего то более императивного. Порой хочется написать что-то вроде if (A or (B and C) например. Всё-таки не спроса в nginx то lua, то perl, то js впилить пытаются. Но это обычно при каких-то нестандартных хотелках бывает

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

Не подскажешь, можно ли без языков, средствами только конфига, модифицировать переменную? Например, вырезать точку из domain.com в $host

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

Спасибо, годное замечание, не задумывался раньше, теперь буду говорить правильно! Спасибо!!

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

Как интересно в этих ваших энтерпрайзах!

Тут описано не перманентное состояние системы, а возможный факап. И как раз в таких вот случаях и надо чтоб система вела себя максимально предсказуемо и стабильно. Это типа как когда говорят "а что если на наш ЦОД метеорит упадет?! Давайте разносить - часть данных будет в ДС, часть - на Дальнем Востоке, продумывайте как мы это разрулим на уровне данных". Понятно что вариант маловероятный, и вполне возможно что никогда такого не будет (я например за прошлое десятилетие только один раз сталкивался с ситуацией, когда в ДЦ встало охлаждение и была вероятность того что придется все выключать, и то все обошлось; но скорее всего просто мне и моим проектам так везет)

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

Перл с js-ом тоже впилили, но и от них счастья не наступило. Уж очень оно костыльно в nginx впиливается

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

Жду традиционный поток петрасянства про Рамблер и «им вообще кто-то пользуется?». Одно то что традиция глупа, не значит что ей можно манкировать. Или значит?

Петросянство скорее с вашей стороны. Причем здесь рамблер? И раз завели свою басню, то справедливо будет спросить - кто им пользуется, и зачем? Не слышал про него 15 лет.

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

Это понятно. Я накостылил

map $host $dothost {
  ~^([^\.]*)\.([^\.]*)\.(.+)$  $1$2$3;
  default                 $host;
}
например так, но оно работает только для доменов 3 уровня, что очевидно из-за условий в регулярке. Сейчас пытаюсь исправить. Я в правильную сторону иду?

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

Ага, знак вопроса забыл. Теперь работает если в $host 2 или 3 точки.

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

Главное что цель достигнута, после моего комментария этих типовых штеечек не было

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

Именно! Забыл об этом упомянуть. Ну и map, лично для меня, понятнее при большом количестве условий.

chaos_dremel ★★ ()

Его же рамблер уничтожил.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.