From simplebox66 на gmail.com Mon Feb 1 08:57:59 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Mon, 1 Feb 2016 11:57:59 +0300 Subject: =?UTF-8?B?0J7Qs9GA0LDQvdC40YfQtdC90LjQtSDRgdC60L7RgNC+0YHRgtC4INC+0YLQtNCw?= =?UTF-8?B?0YfQuCDRgdGC0LDRgtC40LrQuCDQutC70LjQtdC90YLQsNC8?= Message-ID: Добрый день коллеги. Подскажите пожалуйста есть ли возможность в nginx реализовать ограничение скорость каким либо способом отличным от ограничения скорости на соединение (ведь клиент может создать много соединений и получит нужную ему скорость), есть варианты? Например ограничение скорости по полосе, можно ли реализовать ? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From me на kemko.ru Mon Feb 1 09:10:53 2016 From: me на kemko.ru (=?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JDQvdC00YDQtdC10LI=?=) Date: Mon, 01 Feb 2016 09:10:53 +0000 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0YHQutC+0YDQvtGB0YLQuCDQvtGC?= =?UTF-8?B?0LTQsNGH0Lgg0YHRgtCw0YLQuNC60Lgg0LrQu9C40LXQvdGC0LDQvA==?= In-Reply-To: References: Message-ID: Связка из http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html и http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html чем-то не подходит? пн, 1 февр. 2016 г. в 11:58, Иван Мишин : > Добрый день коллеги. > Подскажите пожалуйста есть ли возможность в nginx реализовать ограничение > скорость каким либо способом отличным от ограничения скорости на соединение > (ведь клиент может создать много соединений и получит нужную ему скорость), > есть варианты? > Например ограничение скорости по полосе, можно ли реализовать ? > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Mon Feb 1 09:48:04 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Mon, 1 Feb 2016 15:48:04 +0600 Subject: =?UTF-8?B?0KPQu9GD0YfRiNC10L3QuNC1IG5neF9odHRwX2xpbWl0X3JlcV9tb2R1bGU=?= Message-ID: <15110208852.20160201154804@ngs.ru> Здравствуйте. Насколько сообществу интересна реализация улучшения модуля ngx_http_limit_req_module, а в частности расширения синтаксиса директивы limit_req? Предлагаемый синтаксис: (1) limit_req zone=название [burst=число] [nodelay] [if=условие] [last]; (2) limit_req off if=условие; (3) limit_req off; (4) limit_req last if=условие; Предлагаемая логика работы: Синтаксис (1): Базовый синтаксис дополняется возможностью указания условия if=условие и параметром last. Если заданное условие не выполняется, то ключ зоны не вычисляется, директива пропускается, учет запроса не происходит. Выполняются остальные директивы limit_req, при их наличии. Если заданное условие выполняется или условие не задано, применяются ограничения зоны обычным образом. При этом вычисляется ключ зоны, если значение ключа не пустое и указан параметр last - остальные директивы limit_req не выполняются. Синтаксис (2): Возможность отключения ограничения по заданному в переменной условию. Директива такого синтаксиса может быть только первой в списке директив limit_req. Синтаксис (3): Возможность безусловного отключения ограничений, наследованных с предыдущего уровня. Все директивы, заданные на этом или предыдущем уровне - отключаются. Синтаксис (4) Возможность прекратить обработку директив limit_req по заданному в переменной условию, с применением ограничений уже обработанных директив. Отличие от синтаксиса (2): может быть в любом месте в списке директив limit_req, соответственно директивы выше по списку директив должны быть обработаны корректно, в остальном является практически точной копией синтаксиса (2) ("синтаксический сахар"). Для данного улучшения уже почти готов патч (за вычетом синтаксиса 4). Также можно сделать аналогичную доработку модуля ngx_http_limit_conn_module. Из планируемых вещей также есть мысли по поводу добавления параметра "dry-run". Предлагаю обсудить целесообразность/заинтересованность сообщества в подобного рода доработках. Пример использования предлагаемого синтаксиса: server { ... limit_req_zone $binary_remote_addr zone=user:10m rate=200r/s; limit_req_zone $binary_remote_addr zone=spider:10m rate=20r/s; location / { limit_req off if=$verytrusted; #last applied too limit_req zone=api burst=2 if=$is_api_host last; limit_req zone=spider burst=20 if=$is_spider_host$is_spider_re last nodelay; limit_req zone=user; } location /static { limit_req off; } ... }; -- С уважением, Pavel mailto:pavel2000 на ngs.ru From simplebox66 на gmail.com Mon Feb 1 12:03:48 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Mon, 1 Feb 2016 15:03:48 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0YHQutC+0YDQvtGB0YLQuCDQvtGC?= =?UTF-8?B?0LTQsNGH0Lgg0YHRgtCw0YLQuNC60Lgg0LrQu9C40LXQvdGC0LDQvA==?= In-Reply-To: References: Message-ID: Быть может эта связка и устроит, но я пока не понимаю как используя выше названные модули можно ограничить скорость(например до 3Мбит) конкретному клиенту (который кстати говоря может сидеть и за НАТом) на скачивание файлов. 1 февраля 2016 г., 12:10 пользователь Дмитрий Андреев написал: > Связка из http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html и > http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html чем-то не > подходит? > > пн, 1 февр. 2016 г. в 11:58, Иван Мишин : > >> Добрый день коллеги. >> Подскажите пожалуйста есть ли возможность в nginx реализовать ограничение >> скорость каким либо способом отличным от ограничения скорости на соединение >> (ведь клиент может создать много соединений и получит нужную ему скорость), >> есть варианты? >> Например ограничение скорости по полосе, можно ли реализовать ? >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Mon Feb 1 13:25:37 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Feb 2016 16:25:37 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <15110208852.20160201154804@ngs.ru> References: <15110208852.20160201154804@ngs.ru> Message-ID: <20160201132537.GN98618@mdounin.ru> Hello! On Mon, Feb 01, 2016 at 03:48:04PM +0600, Pavel V. wrote: > Здравствуйте. > > Насколько сообществу интересна реализация улучшения модуля ngx_http_limit_req_module, а в частности > расширения синтаксиса директивы limit_req? > > Предлагаемый синтаксис: > > (1) limit_req zone=название [burst=число] [nodelay] [if=условие] [last]; > (2) limit_req off if=условие; > (3) limit_req off; > (4) limit_req last if=условие; > > > Предлагаемая логика работы: > > Синтаксис (1): > > Базовый синтаксис дополняется возможностью указания условия if=условие и параметром last. > Если заданное условие не выполняется, то ключ зоны не вычисляется, директива пропускается, учет > запроса не происходит. Выполняются остальные директивы limit_req, при их наличии. > Если заданное условие выполняется или условие не задано, применяются ограничения зоны обычным > образом. При этом вычисляется ключ зоны, если значение ключа не пустое и указан параметр last - > остальные директивы limit_req не выполняются. Сейчас условное применение limit_req делается с помощью ключа - если ключ пустой, то ограничение не применяется. Сделать явный отдельный параметр if - можно, но сколько-нибудь принципиальной разницы нет. В то же время не факт, что мы хотим тут усложнять синтаксис. Кроме того, см. ниже про "если хочется программировать". > Синтаксис (2): > > Возможность отключения ограничения по заданному в переменной условию. > Директива такого синтаксиса может быть только первой в списке директив limit_req. Это выглядит очень неинтуитивно, IMHO. > Синтаксис (3): > > Возможность безусловного отключения ограничений, наследованных с предыдущего уровня. > Все директивы, заданные на этом или предыдущем уровне - отключаются. Это уже записано в TODO, возможность отказаться от унаследованных ограничений, безусловно, нужна. > Синтаксис (4) > > Возможность прекратить обработку директив limit_req по заданному в переменной условию, с > применением ограничений уже обработанных директив. > > Отличие от синтаксиса (2): может быть в любом месте в списке директив limit_req, соответственно > директивы выше по списку директив должны быть обработаны корректно, в остальном > является практически точной копией синтаксиса (2) ("синтаксический сахар"). > > Для данного улучшения уже почти готов патч (за вычетом синтаксиса 4). Также можно сделать > аналогичную доработку модуля ngx_http_limit_conn_module. Эта логика предполагает последовательное применение ограничений. Меж тем, логика работы nginx'а предполагает декларативную конфигурацию, с отсутствием зависимости от порядка. Не надо тащить в nginx очередную императивную логику, хватит с нас rewrite-модуля. Если хочется программировать - стоит подумать о том, чтобы вытащить результаты ограничений в переменные, и дальше программировать с помощью директив rewrite-модуля же. > Из планируемых вещей также есть мысли по поводу добавления параметра "dry-run". Да, сделать возможность проверки ограничений без их реального применения - тоже уже в TODO. [...] -- Maxim Dounin http://nginx.org/ From pavel2000 на ngs.ru Mon Feb 1 17:03:16 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Mon, 1 Feb 2016 23:03:16 +0600 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <20160201132537.GN98618@mdounin.ru> References: <15110208852.20160201154804@ngs.ru> <20160201132537.GN98618@mdounin.ru> Message-ID: <386440530.20160201230316@ngs.ru> Здравствуйте, Максим. > Эта логика предполагает последовательное применение ограничений. > Меж тем, логика работы nginx'а предполагает декларативную > конфигурацию, с отсутствием зависимости от порядка. Не надо > тащить в nginx очередную императивную логику, хватит с нас > rewrite-модуля. Понятно, переосмыслил концепцию с учетом этого замечания. Тогда, конечно, предлагаемый мной параметр last и "условный off" в принципе недопустимы. > Сделать явный отдельный параметр if - можно, но сколько-нибудь > принципиальной разницы нет. В то же время не факт, что мы хотим > тут усложнять синтаксис. Если условия везде одинаковые, то они задаются map-ом, пусть и чуть более громоздким конфигом, чем с параметром if. Принципиальная разница появляется только в том, что в разные директивы limit_req в параметр if можно задать разные условия. В директиве access_log такой синтаксис есть и мне кажется, что это весьма удобное решение. Хотелось бы понять, насколько оно востребованно применительно к limit_req. > Если хочется программировать - стоит подумать о том, чтобы > вытащить результаты ограничений в переменные, и дальше > программировать с помощью директив rewrite-модуля же. Можно увидеть пример конфигурации, как она могла бы быть заданной таким способом? Например, для двух условий: $is_spider и $is_vip. Если $is_vip - ограничений вообще нет, если $is_spider - одна зона (ограничения), иначе вторая (другие ограничения)? >> Возможность безусловного отключения ограничений, наследованных с >> предыдущего уровня. > Это уже записано в TODO, возможность отказаться от унаследованных > ограничений, безусловно, нужна. >> Из планируемых вещей также есть мысли по поводу добавления параметра "dry-run". > Да, сделать возможность проверки ограничений без их реального > применения - тоже уже в TODO. Судя по всему, это должен быть параметр директивы limit_req_zone. Как он зовется в вашем TODO? "Patches are welcome"? По этим двум пунктам они достаточно тривиальны. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From mdounin на mdounin.ru Mon Feb 1 18:16:37 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 1 Feb 2016 21:16:37 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <386440530.20160201230316@ngs.ru> References: <15110208852.20160201154804@ngs.ru> <20160201132537.GN98618@mdounin.ru> <386440530.20160201230316@ngs.ru> Message-ID: <20160201181636.GR98618@mdounin.ru> Hello! On Mon, Feb 01, 2016 at 11:03:16PM +0600, Pavel V. wrote: [...] > > Сделать явный отдельный параметр if - можно, но сколько-нибудь > > принципиальной разницы нет. В то же время не факт, что мы хотим > > тут усложнять синтаксис. > > Если условия везде одинаковые, то они задаются map-ом, пусть и чуть более > громоздким конфигом, чем с параметром if. Принципиальная разница появляется > только в том, что в разные директивы limit_req в параметр if можно задать разные > условия. Если условия вдруг разные - то они, при желании, аналогично задаются чуть более сложным map'ом. Так что это, в общем-то, в первую очередь вопрос синтаксиса. Принципиально разницы тут не прослеживается. Плюсы, которые видны: чуть проще синтаксис (не всякий пользователь nginx'а готов писать логику с использованием map'ов), и можно менять burst/nodelay без добавления поддержки переменных в соответствующих параметрах. Но я совершенно не уверен в востребованности всего этого. [...] > > Если хочется программировать - стоит подумать о том, чтобы > > вытащить результаты ограничений в переменные, и дальше > > программировать с помощью директив rewrite-модуля же. > > Можно увидеть пример конфигурации, как она могла бы быть заданной > таким способом? > Например, для двух условий: $is_spider и $is_vip. > Если $is_vip - ограничений вообще нет, если $is_spider - одна зона > (ограничения), иначе вторая (другие ограничения)? Вот конкретно для такой задачи - всё решается существующими механизмами, ничего изобретать не надо. Как-то так: map $is_vip$is_spider $user { 10 ""; 11 ""; 01 ""; 00 $binary_remote_addr; } map $is_vip$is_spider $spider { 10 ""; 11 ""; 01 $binary_remote_addr; 00 ""; } limit_req_zone $spider zone=spider:1m rate=1r/m; limit_req_zone $user zone=user:1m rate=10r/m; limit_req zone=spider; limit_req zone=user; Что до использования переменных и программирования, то оно может быть нужно в случаях сложной логики - e.g., если мы хотим отвергать запрос только в случае срабатывания нескольких ограничений одновременно. Или хотим даже при срабатывании одного ограничения увеличивать остальные счётчики. Как это должно выглядеть - надо думать, вероятно экспротировать счётчики в каких-то переменных, задаваемых через limit_req_zone, и строить логику на обращениях к ним, как-то так: limit_req_zone $binary_remote_addr zone=addr:1m rate=1r/m variable=$limit_addr_count; limit_req_zone $server_name zone=host:1m rate=1r/m variable=$limit_host_count; set $limit $limit_addr_count:$limit_host_count; if ($limit ~ "\d\d+:\d\d+") { return 401; } Но, опять же, не факт, что мы вообще что-то подобное хотим делать. > >> Возможность безусловного отключения ограничений, наследованных с > >> предыдущего уровня. > > > Это уже записано в TODO, возможность отказаться от унаследованных > > ограничений, безусловно, нужна. > > >> Из планируемых вещей также есть мысли по поводу добавления параметра "dry-run". > > > Да, сделать возможность проверки ограничений без их реального > > применения - тоже уже в TODO. > > Судя по всему, это должен быть параметр директивы limit_req_zone. Как он зовется > в вашем TODO? Скорее, отдельная директива, аналогично limit_req_status / limit_req_log_level. В TODO значится: Dry-run for limit_req. See also: http://mailman.nginx.org/pipermail/nginx/2016-January/049648.html > "Patches are welcome"? По этим двум пунктам они достаточно тривиальны. Да. На всякий случай оставлю эту ссылку здесь: http://nginx.org/ru/docs/contributing_changes.html -- Maxim Dounin http://nginx.org/ From postmaster на softsearch.ru Mon Feb 1 19:06:02 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Mon, 1 Feb 2016 22:06:02 +0300 Subject: geo2nginx.pl Message-ID: <2810576646.20160201220602@softsearch.ru> Здравствуйте. В составе дистрибутива идёт реально не работающий скрипт. Формат базы MaxMind-а поменялся. -- С уважением, Михаил mailto:postmaster на softsearch.ru From pavel2000 на ngs.ru Mon Feb 1 23:45:18 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 2 Feb 2016 05:45:18 +0600 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <20160201181636.GR98618@mdounin.ru> References: <15110208852.20160201154804@ngs.ru> <20160201132537.GN98618@mdounin.ru> <386440530.20160201230316@ngs.ru> <20160201181636.GR98618@mdounin.ru> Message-ID: <598784290.20160202054518@ngs.ru> Здравствуйте, Maxim. Вы писали 2 февраля 2016 г., 0:16:37: >> Судя по всему, это должен быть параметр директивы limit_req_zone. Как он зовется >> в вашем TODO? > Скорее, отдельная директива, аналогично limit_req_status / > limit_req_log_level. Приведу свою аргументацию, почему это должен быть именно параметр директивы limit_req_zone. Функция "dry-run" необходима для того, чтобы дать возможность протестировать влияние ограничений на реальные запросы. В реальности в одном контексте будет несколько директив limit_req, и отключать применение ограничений необходимо будет только на части из них. Например, у нас могут быть настроенные ограничения, но мы захотим проверить, как будут применяться более жесткие ограничения или вообще будем вводить другой ключ. Вполне естественно, что имеющиеся ограничения мы отключать при этом не захотим. Гибкости, которую может предоставить отдельная директива уровня контеста, для этих целей явно недостаточно. Чтобы решить данную ситуацию, можно, например, добавить параметр в директиву limit_req. Однако, если возникает необходимость тестировать "как оно будет", то это значит, что неправильна настройка rate всей зоны и мы будем стремиться максимально исключать негативные последствия - т.е. будем выключать применение ограничения везде, где используется указанная зона, либо загрублять настройку rate. В общем случае, наиболее вероятным сценарием использования функции я вижу именно создание дополнительной зоны для тестирования, подключение её в нужные контексты (возможно, параллельно ранее сконфигурированным зонам/ограничениям) и собственно тестирование. Возможность задавать dry-run параметром limit_req для этих целей явно избыточна, поэтому я предлагаю вариант добавления параметра в директиву limit_req_zone. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From public-mail на alekciy.ru Tue Feb 2 05:02:00 2016 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Tue, 2 Feb 2016 09:02:00 +0400 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0YHQutC+0YDQvtGB0YLQuCDQvtGC?= =?UTF-8?B?0LTQsNGH0Lgg0YHRgtCw0YLQuNC60Lgg0LrQu9C40LXQvdGC0LDQvA==?= In-Reply-To: References: Message-ID: Нельзя ограничить по полосе. Используйте для этого другие инструменты. 1 февраля 2016 г., 12:57 пользователь Иван Мишин написал: > Добрый день коллеги. > Подскажите пожалуйста есть ли возможность в nginx реализовать ограничение > скорость каким либо способом отличным от ограничения скорости на соединение > (ведь клиент может создать много соединений и получит нужную ему скорость), > есть варианты? > Например ограничение скорости по полосе, можно ли реализовать ? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на forum.nginx.org Tue Feb 2 07:32:47 2016 From: nginx-forum на forum.nginx.org (alexandre_frolov) Date: Tue, 02 Feb 2016 02:32:47 -0500 Subject: =?UTF-8?B?0J/RgNC+0LHQu9C10LzQsCDRgSBIVFRQUyAtINC80L3QvtCz0L4g0YHQsNC50YI=?= =?UTF-8?B?0L7QsiDQvdCwINC+0LTQvdC+0LwgSVA=?= Message-ID: На сервере есть один сайт HTTPS на порту 443 (например, https://ssl.site.ru), и много обычных сайтов HTTP (например, http://site2.ru, http://site3.ru и т.д.). Nginx проксирует все это в Apache. Проблема в том, что при попытке открыть обычные сайты HTTP через HTTPS открывается сайт https://ssl.site.ru. Т.е. по адресу httpS://site2.ru открывается сайт https://ssl.site.ru. Подскажите, пожалуйста, могу ли я как-то запретить открытие сайтов http://site2.ru, http://site3.ru и т.п. через HTTPS, настроив, например, редирект в конфигурации nginx для сайта https://ssl.site.ru? Буду очень благодарен за помощь! Текущая конфигурация для сайта https://ssl.site.ru была создана ISPmanager 4, FreeBSD 9.3: server { server_name ssl.site.ru www.ssl.site.ru; listen xxx.xxx.xxx.xxx; listen xxx.xxx.xxx.xxx:443 ssl; disable_symlinks if_not_owner from=$root_path; set $root_path /home/user/data/www/ssl.site.ru; location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|woff)$ { root $root_path; expires 7d; access_log /home/nginx-logs/user isp; access_log /home/httpd-logs/ssl.site.ru.access.log ; error_page 404 = @fallback; } location / { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_redirect http://xxx.xxx.xxx.xxx:81/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location @fallback { proxy_pass http://xxx.xxx.xxx.xxx:81; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location ^~ /webstat/ { auth_basic "Restricted area"; auth_basic_user_file /home/user/data/etc/17984547.passwd; try_files $uri @fallback; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { root $root_path; access_log /home/nginx-logs/user isp; access_log /home/httpd-logs//ssl.site.ru.access.log ; error_page 404 = @fallback; } include /usr/local/ispmgr/etc/nginx.inc; charset windows-1251; ssl_certificate /home/httpd-cert/user//ssl.site.ru_ssl.chained.crt; ssl_certificate_key /home/httpd-cert/user//ssl.site.ru_ssl.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AE } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264248#msg-264248 From simplebox66 на gmail.com Tue Feb 2 08:12:07 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Tue, 2 Feb 2016 11:12:07 +0300 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0YHQutC+0YDQvtGB0YLQuCDQvtGC?= =?UTF-8?B?0LTQsNGH0Lgg0YHRgtCw0YLQuNC60Lgg0LrQu9C40LXQvdGC0LDQvA==?= In-Reply-To: References: Message-ID: > > Нельзя ограничить по полосе. Используйте для этого другие инструменты. Алексей, сможете порекомендовать что-то? 2 февраля 2016 г., 8:02 пользователь Алексей Сундуков < public-mail на alekciy.ru> написал: > Нельзя ограничить по полосе. Используйте для этого другие инструменты. > > 1 февраля 2016 г., 12:57 пользователь Иван Мишин > написал: > >> Добрый день коллеги. >> Подскажите пожалуйста есть ли возможность в nginx реализовать ограничение >> скорость каким либо способом отличным от ограничения скорости на соединение >> (ведь клиент может создать много соединений и получит нужную ему скорость), >> есть варианты? >> Например ограничение скорости по полосе, можно ли реализовать ? >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From alex.hha на gmail.com Tue Feb 2 08:23:58 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 2 Feb 2016 10:23:58 +0200 Subject: =?UTF-8?B?UmU6INCe0LPRgNCw0L3QuNGH0LXQvdC40LUg0YHQutC+0YDQvtGB0YLQuCDQvtGC?= =?UTF-8?B?0LTQsNGH0Lgg0YHRgtCw0YLQuNC60Lgg0LrQu9C40LXQvdGC0LDQvA==?= In-Reply-To: References: Message-ID: Ну самое банальное tc из состава iproute 2016-02-02 10:12 GMT+02:00 Иван Мишин : > Нельзя ограничить по полосе. Используйте для этого другие инструменты. > > Алексей, сможете порекомендовать что-то? > > 2 февраля 2016 г., 8:02 пользователь Алексей Сундуков < > public-mail на alekciy.ru> написал: > > Нельзя ограничить по полосе. Используйте для этого другие инструменты. >> >> 1 февраля 2016 г., 12:57 пользователь Иван Мишин >> написал: >> >>> Добрый день коллеги. >>> Подскажите пожалуйста есть ли возможность в nginx реализовать >>> ограничение скорость каким либо способом отличным от ограничения скорости >>> на соединение (ведь клиент может создать много соединений и получит нужную >>> ему скорость), есть варианты? >>> Например ограничение скорости по полосе, можно ли реализовать ? >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Tue Feb 2 10:02:59 2016 From: nginx-forum на forum.nginx.org (kron) Date: Tue, 02 Feb 2016 05:02:59 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: References: Message-ID: По мне, так лучше завести отдельную server секцию с поддержкой https для доменов, которые не должны работать по https и сделать там редирект на http версию сайта Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264257#msg-264257 From nginx-forum на forum.nginx.org Tue Feb 2 10:18:28 2016 From: nginx-forum на forum.nginx.org (Alex_Cardo) Date: Tue, 02 Feb 2016 05:18:28 -0500 Subject: =?UTF-8?B?0J/QvtC80L7Qs9C40YLQtSDQtNGA0YPQt9GM0Y8hIVVidW50dSAxNC0wNCBuZ25p?= =?UTF-8?B?eCBwaHAtZnBt?= Message-ID: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> Пропал файлик /var/run/php5-fpm.sock. Как его востановить? вот мои конфиг php access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location ~ \.php$ { root /var/www/AS_BTI/PHP; try_files $uri =404; include fastcgi_params; fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/AS_BTI/PHP$fastcgi_script_name; } /var/run/????? cдесь он всегда был ,все работало отлично.к обработке php кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" Помогите кто чем может!!спасибо друзья!! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264258,264258#msg-264258 From nginx-forum на forum.nginx.org Tue Feb 2 10:22:55 2016 From: nginx-forum на forum.nginx.org (alexandre_frolov) Date: Tue, 02 Feb 2016 05:22:55 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: References: Message-ID: <66f331c6e820f6d518d3a8b8dde021c7.NginxMailingListRussian@forum.nginx.org> Вообще HTTP сайтов на этом сервере очень много, а HTTPS - только один. И там еще стоит панель ISPmanager, которая не должна сломаться от сильно кастомизированного конфига nginx... Подскажите, пожалуйста, а как сделать редирект на http версию сайта в таком конфиге? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264259#msg-264259 From pavel2000 на ngs.ru Tue Feb 2 10:32:36 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 2 Feb 2016 16:32:36 +0600 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <66f331c6e820f6d518d3a8b8dde021c7.NginxMailingListRussian@forum.nginx.org> References: <66f331c6e820f6d518d3a8b8dde021c7.NginxMailingListRussian@forum.nginx.org> Message-ID: <885618245.20160202163236@ngs.ru> Здравствуйте, alexandre_frolov. Вы писали 2 февраля 2016 г., 16:22:55: > Вообще HTTP сайтов на этом сервере очень много, а HTTPS - только один. И там > еще стоит панель ISPmanager, которая не должна сломаться от сильно > кастомизированного конфига nginx... > Подскажите, пожалуйста, а как сделать редирект на http версию сайта в таком > конфиге? Никак. Чтобы сделать редирект, клиенту должен быть предоставлен корректный сертификат. Выделяйте для не-HTTPS-ных сайтов отдельный IP на котором не будет никакого HTTPS. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From alex.hha на gmail.com Tue Feb 2 11:03:28 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 2 Feb 2016 13:03:28 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> Message-ID: > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? запустить php-fpm # service php5-fpm start 2016-02-02 12:18 GMT+02:00 Alex_Cardo : > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? > > вот мои конфиг php > > access_log /var/log/nginx/access.log; > error_log /var/log/nginx/error.log; > location ~ \.php$ { > root /var/www/AS_BTI/PHP; > try_files $uri =404; > include fastcgi_params; > fastcgi_split_path_info ^(.+?\.php)(/.*)$; > fastcgi_pass unix:/var/run/php5-fpm.sock; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME > /var/www/AS_BTI/PHP$fastcgi_script_name; > > } > > /var/run/????? cдесь он всегда был ,все работало отлично.к обработке php > кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот > ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock > failed (2: No such file or directory) while connecting to upstream, client: > 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: > "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" > > Помогите кто чем может!!спасибо друзья!! > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264258,264258#msg-264258 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Tue Feb 2 11:25:35 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 02 Feb 2016 14:25:35 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <598784290.20160202054518@ngs.ru> References: <15110208852.20160201154804@ngs.ru> <20160201181636.GR98618@mdounin.ru> <598784290.20160202054518@ngs.ru> Message-ID: <3344134.0Ze7zivcSn@vbart-laptop> On Tuesday 02 February 2016 05:45:18 Pavel V. wrote: > Здравствуйте, Maxim. > > Вы писали 2 февраля 2016 г., 0:16:37: > >> Судя по всему, это должен быть параметр директивы limit_req_zone. Как он > >> зовется в вашем TODO? > > > > Скорее, отдельная директива, аналогично limit_req_status / > > limit_req_log_level. > > Приведу свою аргументацию, почему это должен быть именно параметр > директивы limit_req_zone. > > Функция "dry-run" необходима для того, чтобы дать возможность протестировать > влияние ограничений на реальные запросы. В реальности в одном контексте > будет несколько директив limit_req, и отключать применение ограничений > необходимо будет только на части из них. > > Например, у нас могут быть настроенные ограничения, но мы захотим проверить, > как будут применяться более жесткие ограничения или вообще будем вводить > другой ключ. Вполне естественно, что имеющиеся ограничения мы отключать > при этом не захотим. > > Гибкости, которую может предоставить отдельная директива уровня контеста, > для этих целей явно недостаточно. Чтобы решить данную ситуацию, можно, > например, добавить параметр в директиву limit_req. > > Однако, если возникает необходимость тестировать "как оно будет", то это > значит, что неправильна настройка rate всей зоны и мы будем стремиться > максимально исключать негативные последствия - т.е. будем выключать > применение ограничения везде, где используется указанная зона, либо > загрублять настройку rate. > > В общем случае, наиболее вероятным сценарием использования функции я вижу > именно создание дополнительной зоны для тестирования, подключение её в > нужные контексты (возможно, параллельно ранее сконфигурированным > зонам/ограничениям) и собственно тестирование. Возможность задавать dry-run > параметром limit_req для этих целей явно избыточна, поэтому я предлагаю > вариант добавления параметра в директиву limit_req_zone. Это не может быть параметром limit_req или limit_req_zone, поскольку ограничения не работают по отдельности. Если в location задано несколько директив limit_req, то применяется наиболее жесткое ограничение. При этом, если в результате запрос отклоняется, то он не учитывается во всех зонах. Переключая режим в только для одной конкретной директивы или зоны, вы тем самым нарушаете правило наиболее жесткого ограничения. Приведу пример: location / { limit_req zone=one; # rate = 1 r/s limit_req zone=two; # rate = 100 r/s } Представьте себе, что вы включили тестовый режим для zone=one, что тогда будет? Фактически под это ограничения могут попасть и те запросы, что раньше попадали под zone=two, но если раньше они были отклонены, то теперь из-за режима работы zone=one они окажутся пропущены. Если же мы будем просто игнорировать работу zone=one и продолжать учитывать запрос в zone=two, то опять же не получим реальной картины. Т.е. тестировать по отдельности, без влияния на уже настроенные ограничения, не получится в любом случае. Также хочется обратить внимание, что ограничения чаще всего настраиваются к конкретному ресурсу, т.е. под конкретный location, а следовательно и тестировать имеет смысл в рамках этого блока location. -- Валентин Бартенев From nginx-forum на forum.nginx.org Tue Feb 2 11:26:55 2016 From: nginx-forum на forum.nginx.org (alexandre_frolov) Date: Tue, 02 Feb 2016 06:26:55 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <885618245.20160202163236@ngs.ru> References: <885618245.20160202163236@ngs.ru> Message-ID: <00a0e9a4cd53009690d5cca709f261f4.NginxMailingListRussian@forum.nginx.org> Вообще на сайте ssl.domain.ru валидный сертификат, но он ведь не подойдет для редиректов с других доменов? Т.е. правильно ли я понял, что выделение второго IP - абсолютная необходимость? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264268#msg-264268 From nginx-forum на forum.nginx.org Tue Feb 2 11:33:49 2016 From: nginx-forum на forum.nginx.org (Alex_Cardo) Date: Tue, 02 Feb 2016 06:33:49 -0500 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> Message-ID: <49be0a54c3bc8a5658bc7627ab86b990.NginxMailingListRussian@forum.nginx.org> Спасибо всем!Проблемма решена!! sudo apt-get remove --purge php5-fpm sudo apt-get update sudo apt-get install php5-fpm Вот может еще у когото будет такая же проблемма!Удачи всем Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264258,264269#msg-264269 From annulen на yandex.ru Tue Feb 2 11:56:19 2016 From: annulen на yandex.ru (Konstantin Tokarev) Date: Tue, 02 Feb 2016 14:56:19 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> Message-ID: <7252471454414179@web5o.yandex.ru> 02.02.2016, 13:18, "Alex_Cardo" : > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? Советую на досуге разобраться, что такое Unix Domain Socket и чем он отличается от обычного файла. > > вот мои конфиг php > >  access_log /var/log/nginx/access.log; >    error_log /var/log/nginx/error.log; >    location ~ \.php$ { >         root /var/www/AS_BTI/PHP; >         try_files $uri =404; >             include fastcgi_params; >             fastcgi_split_path_info ^(.+?\.php)(/.*)$; >             fastcgi_pass unix:/var/run/php5-fpm.sock; >             fastcgi_index index.php; >             fastcgi_param SCRIPT_FILENAME > /var/www/AS_BTI/PHP$fastcgi_script_name; > >    } > > /var/run/????? cдесь он всегда был ,все работало отлично.к обработке php > кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот > ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock > failed (2: No such file or directory) while connecting to upstream, client: > 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: > "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" > > Помогите кто чем может!!спасибо друзья!! > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264258,264258#msg-264258 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Regards, Konstantin From alex.hha на gmail.com Tue Feb 2 12:18:26 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 2 Feb 2016 14:18:26 +0200 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: <7252471454414179@web5o.yandex.ru> References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> <7252471454414179@web5o.yandex.ru> Message-ID: > Вот может еще у когото будет такая же проблемма!Удачи всем за такое надо бить по рукам, сразу. Особенно, если на продакшене 2016-02-02 13:56 GMT+02:00 Konstantin Tokarev : > > > 02.02.2016, 13:18, "Alex_Cardo" : > > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? > > Советую на досуге разобраться, что такое Unix Domain Socket и чем он > отличается от обычного файла. > > > > > вот мои конфиг php > > > > access_log /var/log/nginx/access.log; > > error_log /var/log/nginx/error.log; > > location ~ \.php$ { > > root /var/www/AS_BTI/PHP; > > try_files $uri =404; > > include fastcgi_params; > > fastcgi_split_path_info ^(.+?\.php)(/.*)$; > > fastcgi_pass unix:/var/run/php5-fpm.sock; > > fastcgi_index index.php; > > fastcgi_param SCRIPT_FILENAME > > /var/www/AS_BTI/PHP$fastcgi_script_name; > > > > } > > > > /var/run/????? cдесь он всегда был ,все работало отлично.к обработке php > > кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот > > ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock > > failed (2: No such file or directory) while connecting to upstream, > client: > > 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: > > "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" > > > > Помогите кто чем может!!спасибо друзья!! > > > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264258,264258#msg-264258 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > Regards, > Konstantin > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From voron на amhost.net Tue Feb 2 12:39:06 2016 From: voron на amhost.net (Alex Vorona) Date: Tue, 2 Feb 2016 14:39:06 +0200 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <00a0e9a4cd53009690d5cca709f261f4.NginxMailingListRussian@forum.nginx.org> References: <885618245.20160202163236@ngs.ru> <00a0e9a4cd53009690d5cca709f261f4.NginxMailingListRussian@forum.nginx.org> Message-ID: <56B0A36A.6030700@amhost.net> 02.02.16 13:26, alexandre_frolov пишет: [..] > Т.е. правильно ли я понял, что выделение второго IP - абсолютная > необходимость? Да, все сайты без https на одном IP, все сайты с http и работающим https+SNI на втором IP. From sytar.alex на gmail.com Tue Feb 2 12:39:12 2016 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Tue, 2 Feb 2016 15:39:12 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> <7252471454414179@web5o.yandex.ru> Message-ID: 2 февраля 2016 г., 15:18 пользователь Alex Domoradov написал: > > Вот может еще у когото будет такая же проблемма!Удачи всем > за такое надо бить по рукам, сразу. Особенно, если на продакшене > Зря вы так, до пятницы еще далеко, авось и починить успеет > > 2016-02-02 13:56 GMT+02:00 Konstantin Tokarev : > >> >> >> 02.02.2016, 13:18, "Alex_Cardo" : >> > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? >> >> Советую на досуге разобраться, что такое Unix Domain Socket и чем он >> отличается от обычного файла. >> >> > >> > вот мои конфиг php >> > >> > access_log /var/log/nginx/access.log; >> > error_log /var/log/nginx/error.log; >> > location ~ \.php$ { >> > root /var/www/AS_BTI/PHP; >> > try_files $uri =404; >> > include fastcgi_params; >> > fastcgi_split_path_info ^(.+?\.php)(/.*)$; >> > fastcgi_pass unix:/var/run/php5-fpm.sock; >> > fastcgi_index index.php; >> > fastcgi_param SCRIPT_FILENAME >> > /var/www/AS_BTI/PHP$fastcgi_script_name; >> > >> > } >> > >> > /var/run/????? cдесь он всегда был ,все работало отлично.к обработке php >> > кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот >> > ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock >> > failed (2: No such file or directory) while connecting to upstream, >> client: >> > 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: >> > "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" >> > >> > Помогите кто чем может!!спасибо друзья!! >> > >> > Posted at Nginx Forum: >> https://forum.nginx.org/read.php?21,264258,264258#msg-264258 >> > >> > _______________________________________________ >> > nginx-ru mailing list >> > nginx-ru на nginx.org >> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> -- >> Regards, >> Konstantin >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Tue Feb 2 13:23:19 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 2 Feb 2016 19:23:19 +0600 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <3344134.0Ze7zivcSn@vbart-laptop> References: <15110208852.20160201154804@ngs.ru> <20160201181636.GR98618@mdounin.ru> <598784290.20160202054518@ngs.ru> <3344134.0Ze7zivcSn@vbart-laptop> Message-ID: <832178047.20160202192319@ngs.ru> Здравствуйте. > Это не может быть параметром limit_req или limit_req_zone, поскольку > ограничения не работают по отдельности. Если в location задано несколько > директив limit_req, то применяется наиболее жесткое ограничение. При этом, > если в результате запрос отклоняется, то он не учитывается во всех зонах. > Переключая режим в только для одной конкретной директивы или зоны, вы тем > самым нарушаете правило наиболее жесткого ограничения. Именно это и является целью мероприятия - отключить правило наиболее жесткого ограничения, если это ограничение идет из тестируемой зоны. > Приведу пример: > location / { > limit_req zone=one; # rate = 1 r/s > limit_req zone=two; # rate = 100 r/s > } > Представьте себе, что вы включили тестовый режим для zone=one, что тогда > будет? Фактически под это ограничения могут попасть и те запросы, что раньше > попадали под zone=two, но если раньше они были отклонены, то теперь из-за > режима работы zone=one они окажутся пропущены. Всё верно, мы отключили ограничение зоны one и запросы должны быть пропущены, если их не ограничит зона two. Предлагаемый мной вариант более гибкий в этом аспекте, им можно добиться того же поведения, что и директивой уровня location - если нужно, то для zone=two _тоже можно_ включить тестовый режим. > Если же мы будем просто игнорировать работу zone=one и продолжать учитывать > запрос в zone=two, то опять же не получим реальной картины. Реальная картина зависит от того, как мы отвечаем внешнему миру. Если включив параметр dry-run мы поменяем свое поведение, то абсолютно реальной картины мы не получим никак, куда бы мы не вынесли параметр dry-run. Не менять свое поведение как раз и позволяет вынос параметра dry-run на уровни limit_req / limit_req_zone. Нам реальная картина и не нужна, нам нужна оценка. Цель включения режима dry-run - увидеть, не являются ли тестируемые ограничения более жесткими, чем уже имеющиеся. Поэтому нам достаточно увидеть факт того, что запросы (не)подпадают под ограничения зоны one. То, что от этого больше запросов будет учтено в зоне two - ожидаемое явление. > Т.е. тестировать по отдельности, без влияния на уже настроенные ограничения, > не получится в любом случае. В моей схеме можно добавить новую зону в тестовом режиме в дополнение к уже настроенным ограничениям. Не понимаю, как добавление новой тестовой зоны сможет повлиять на уже настроенные ограничения. > Также хочется обратить внимание, что ограничения чаще всего настраиваются к > конкретному ресурсу, т.е. под конкретный location, а следовательно и > тестировать имеет смысл в рамках этого блока location. Если "ограничения чаще всего настраиваются к конкретному ресурсу, т.е. под конкретный location", то это значит, что зона выделена именно под конкретный ресурс, а значит вынос ограничения на уровень limit_req_zone подходит для решения задачи тестового режима. Однако зона - штука общая, и может применяться и к разным ресурсам/location. Например, у нас есть куча разных server {} языковых версий одного сайта и мы знаем, что один реальный пользователь может одновременно находится на только на одном из них - т.е. применяем одну зону сразу в большом наборе location всех этих server {}. Т.к. запросы одного location будут влиять на другие, то в этом случае я не вижу целесообразности отключения ограничений на уровне одного location, не отключая их в других. Вынос ограничения на уровень limit_req_zone подходит под эти требования как нельзя лучше. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From nginx-forum на forum.nginx.org Tue Feb 2 13:28:31 2016 From: nginx-forum на forum.nginx.org (kron) Date: Tue, 02 Feb 2016 08:28:31 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <56B0A36A.6030700@amhost.net> References: <56B0A36A.6030700@amhost.net> Message-ID: Это абсолютная необходимость, если у вас сертификат подписан на один домен и не валиден для всех адресов которые настроены на nginx, если же у вас wildcard и все домены под него подпадают, то в этом нет необходимости. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264275#msg-264275 From nginx-forum на forum.nginx.org Tue Feb 2 13:34:55 2016 From: nginx-forum на forum.nginx.org (kron) Date: Tue, 02 Feb 2016 08:34:55 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <66f331c6e820f6d518d3a8b8dde021c7.NginxMailingListRussian@forum.nginx.org> References: <66f331c6e820f6d518d3a8b8dde021c7.NginxMailingListRussian@forum.nginx.org> Message-ID: server { listen 443 ssl default; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key; location / { return 301 http://$host$request_uri; } } server { server_name ssl_site.ru www.ssl.site.ru; ... } http://pastebin.com/Q52XQYFq но как верно заметили, в верхней секции сертификат должен подходить для доменов, которые вы хостите. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264276#msg-264276 From vbart на nginx.com Tue Feb 2 13:57:41 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 02 Feb 2016 16:57:41 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <832178047.20160202192319@ngs.ru> References: <15110208852.20160201154804@ngs.ru> <3344134.0Ze7zivcSn@vbart-laptop> <832178047.20160202192319@ngs.ru> Message-ID: <4009769.SbzdsTydZ6@vbart-workstation> On Tuesday 02 February 2016 19:23:19 Pavel V. wrote: > Здравствуйте. > > > Это не может быть параметром limit_req или limit_req_zone, поскольку > > ограничения не работают по отдельности. Если в location задано несколько > > директив limit_req, то применяется наиболее жесткое ограничение. При этом, > > если в результате запрос отклоняется, то он не учитывается во всех зонах. > > > Переключая режим в только для одной конкретной директивы или зоны, вы тем > > самым нарушаете правило наиболее жесткого ограничения. > > Именно это и является целью мероприятия - отключить правило наиболее жесткого > ограничения, если это ограничение идет из тестируемой зоны. > Просто отключить можно закомментировав директиву или указав пустую строку в качестве ключа зоны. Видимо цель все же в другом - протестировать работу ограничений, что в отдельности не представляется возможным. > > Приведу пример: > > > location / { > > limit_req zone=one; # rate = 1 r/s > > limit_req zone=two; # rate = 100 r/s > > } > > > Представьте себе, что вы включили тестовый режим для zone=one, что тогда > > будет? Фактически под это ограничения могут попасть и те запросы, что раньше > > попадали под zone=two, но если раньше они были отклонены, то теперь из-за > > режима работы zone=one они окажутся пропущены. > > Всё верно, мы отключили ограничение зоны one и запросы должны быть пропущены, > если их не ограничит зона two. > > Предлагаемый мной вариант более гибкий в этом аспекте, им можно добиться того > же поведения, что и директивой уровня location - если нужно, то для zone=two > _тоже можно_ включить тестовый режим. > > > Если же мы будем просто игнорировать работу zone=one и продолжать учитывать > > запрос в zone=two, то опять же не получим реальной картины. > > Реальная картина зависит от того, как мы отвечаем внешнему миру. Если > включив параметр dry-run мы поменяем свое поведение, то абсолютно реальной > картины мы не получим никак, куда бы мы не вынесли параметр dry-run. > > Не менять свое поведение как раз и позволяет вынос параметра dry-run на > уровни limit_req / limit_req_zone. > > Нам реальная картина и не нужна, нам нужна оценка. > > Цель включения режима dry-run - увидеть, не являются ли тестируемые ограничения > более жесткими, чем уже имеющиеся. Поэтому нам достаточно увидеть факт того, > что запросы (не)подпадают под ограничения зоны one. То, что от этого больше > запросов будет учтено в зоне two - ожидаемое явление. > Ограничения не работают по отдельности, они не работают последовательно, они работают вместе и одновременно. Когда указано несколько директив limit_req, то результатом будет кумулятивное решение о том, следует ли отклонять запрос или нет, и если запрос будет отклонен, то он не будет посчитан во всех зонах. Если же запрос отклонять не следует, то вычисляется наибольшая задержка. Невозможно добавить или убрать ограничение, не повлияв на работу остальных. > > Т.е. тестировать по отдельности, без влияния на уже настроенные ограничения, > > не получится в любом случае. > > В моей схеме можно добавить новую зону в тестовом режиме в дополнение к уже > настроенным ограничениям. Не понимаю, как добавление новой тестовой зоны сможет > повлиять на уже настроенные ограничения. Если директива приводит к отклонению запроса, то он не будет учтен во всех зонах. Если мы сделаем режим таким, что при этом запрос будет учтен, но не будет отклонен, то это не даст нам возможности оценить работу директивы, поскольку всё будет работать несколько не так, как если бы dry-run был выключен и не позволит оценить реальное влияние директивы на количество пропущенных запросов. Если мы будем действовать также, как без режима dry-run, но только пропускать запрос, то это повлияет на работу сервера парадоксальным образом - более жесткое ограничение в режиме dry-run будет приводить к пропусканию сервером большего количества запросов, чем при его отсутствии. -- Валентин Бартенев From chipitsine на gmail.com Tue Feb 2 14:25:53 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 2 Feb 2016 19:25:53 +0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <00a0e9a4cd53009690d5cca709f261f4.NginxMailingListRussian@forum.nginx.org> References: <885618245.20160202163236@ngs.ru> <00a0e9a4cd53009690d5cca709f261f4.NginxMailingListRussian@forum.nginx.org> Message-ID: можете получить сертификат на Let's Encrypt с многими значениями в AltDN (чтобы покрыть все свои домены). сертификаты бесплатные, но их не любит WinXP (из-за апострофа в имени удостоверяющего центра) или можете настроить терминацию на CloudFlare (там есть ssl из коробки), опять же - на бесплатных тарифах не будет работать с WinXP (из-за SNI) 2 февраля 2016 г., 16:26 пользователь alexandre_frolov < nginx-forum на forum.nginx.org> написал: > Вообще на сайте ssl.domain.ru валидный сертификат, но он ведь не подойдет > для редиректов с других доменов? > Т.е. правильно ли я понял, что выделение второго IP - абсолютная > необходимость? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264248,264268#msg-264268 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Tue Feb 2 15:01:27 2016 From: nginx-forum на forum.nginx.org (alexandre_frolov) Date: Tue, 02 Feb 2016 10:01:27 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEgSFRUUFMgLSDQvNC90L7Qs9C+INGB0LA=?= =?UTF-8?B?0LnRgtC+0LIg0L3QsCDQvtC00L3QvtC8IElQ?= In-Reply-To: <56B0A36A.6030700@amhost.net> References: <56B0A36A.6030700@amhost.net> Message-ID: <6c779e13632d33e354cd115d86e846e0.NginxMailingListRussian@forum.nginx.org> Большое спасибо, буду добавлять IP на сервер. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264248,264284#msg-264284 From pavel2000 на ngs.ru Tue Feb 2 16:08:37 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Tue, 2 Feb 2016 22:08:37 +0600 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <4009769.SbzdsTydZ6@vbart-workstation> References: <15110208852.20160201154804@ngs.ru> <3344134.0Ze7zivcSn@vbart-laptop> <832178047.20160202192319@ngs.ru> <4009769.SbzdsTydZ6@vbart-workstation> Message-ID: <193391564.20160202220837@ngs.ru> Здравствуйте, Валентин. > Невозможно добавить или убрать ограничение, не повлияв на работу остальных. В моей схеме можно добавить дополнительное тестовое ограничение, которое не сможет приводить к отклонению запроса, а значит не повлияет на подсчет запросов в остальных зонах. >> В моей схеме можно добавить новую зону в тестовом режиме в дополнение к уже >> настроенным ограничениям. Не понимаю, как добавление новой тестовой зоны сможет >> повлиять на уже настроенные ограничения. > Если директива приводит к отклонению запроса, то он не будет учтен во всех > зонах. Если мы сделаем режим таким, что при этом запрос будет учтен, но не > будет отклонен, то это не даст нам возможности оценить работу директивы, > поскольку всё будет работать несколько не так, как если бы dry-run был выключен > и не позволит оценить реальное влияние директивы на количество пропущенных > запросов. Тестовое ограничение не может приводить к отклонению запроса, значит запрос может быть отклонен только другой, не тестовой директивой. Если состояние тестируемой зоны показывает необходимость отклонения запроса этой зоной, то запрос в этой тестовой зоне не учитывается независимо от того, будет ли отклонен запрос другими зонами или нет. В остальных зонах запрос учитывается согласно окончательному решению по отклонению или пропуску запроса, на которое тестируемая зона не влияет. Если другие, не тестовые директивы, не отклоняют запросы, то их подсчет в тестовой зоне ведется и будет соответствовать реальной картине потока запросов. Если другие, не тестовые директивы, отклоняют запросы, а тестовая зона не отклоняет - значит тестируемая зона имеет менее жесткие ограничения, что является для нас метрикой допустимости перевода её в боевой режим. Перевод в боевой режим может только уменьшить число запросов, поступающих на учет нетестовые зоны, что является ожидаемым поведением в силу более жесткого ограничения во включаемой зоне. > Если мы будем действовать также, как без режима dry-run, но только пропускать > запрос, то это повлияет на работу сервера парадоксальным образом - более > жесткое ограничение в режиме dry-run будет приводить к пропусканию сервером > большего количества запросов, чем при его отсутствии. Другие, не тестовые директивы, могут отклонить запрос. Я вижу применение например следующим: limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s; #perip limit_req_zone $server_name zone=two:10m rate=10r/s; #perserver limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s dry-run; #test zone location / { limit_req zone=test; # rate = 1 r/s, dry run limit_req zone=one; # rate = 2 r/s limit_req zone=two; # rate = 100 r/s } Цель добавления зоны test - увидеть, какое количество запросов будет задержано/отклонено, если мы уменьшим rate с 2r/s до 1r/s в зоне one. Я думаю, что вполне понятно то, что если в контексте есть ограничение с зоной one с rate=2r/s, то добавление ограничения с тестовой зоной test с rate=3r/s не покажет "количества ограничений", но это и не ожидается и не требуется. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From vbart на nginx.com Tue Feb 2 16:48:11 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 02 Feb 2016 19:48:11 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <193391564.20160202220837@ngs.ru> References: <15110208852.20160201154804@ngs.ru> <4009769.SbzdsTydZ6@vbart-workstation> <193391564.20160202220837@ngs.ru> Message-ID: <10173949.ECZf4n3iVO@vbart-workstation> On Tuesday 02 February 2016 22:08:37 Pavel V. wrote: > Здравствуйте, Валентин. > > > Невозможно добавить или убрать ограничение, не повлияв на работу остальных. > > В моей схеме можно добавить дополнительное тестовое ограничение, которое не > сможет приводить к отклонению запроса, а значит не повлияет на подсчет запросов > в остальных зонах. > > >> В моей схеме можно добавить новую зону в тестовом режиме в дополнение к уже > >> настроенным ограничениям. Не понимаю, как добавление новой тестовой зоны сможет > >> повлиять на уже настроенные ограничения. > > > Если директива приводит к отклонению запроса, то он не будет учтен во всех > > зонах. Если мы сделаем режим таким, что при этом запрос будет учтен, но не > > будет отклонен, то это не даст нам возможности оценить работу директивы, > > поскольку всё будет работать несколько не так, как если бы dry-run был выключен > > и не позволит оценить реальное влияние директивы на количество пропущенных > > запросов. > > Тестовое ограничение не может приводить к отклонению запроса, значит запрос > может быть отклонен только другой, не тестовой директивой. > > Если состояние тестируемой зоны показывает необходимость отклонения > запроса этой зоной, то запрос в этой тестовой зоне не учитывается независимо от > того, будет ли отклонен запрос другими зонами или нет. В остальных зонах запрос > учитывается согласно окончательному решению по отклонению или пропуску запроса, > на которое тестируемая зона не влияет. > > Если другие, не тестовые директивы, не отклоняют запросы, то их подсчет в > тестовой зоне ведется и будет соответствовать реальной картине потока запросов. > > Если другие, не тестовые директивы, отклоняют запросы, а тестовая зона не > отклоняет - значит тестируемая зона имеет менее жесткие ограничения, что > является для нас метрикой допустимости перевода её в боевой режим. > > Перевод в боевой режим может только уменьшить число запросов, поступающих на > учет нетестовые зоны, что является ожидаемым поведением в силу более жесткого > ограничения во включаемой зоне. > [..] Да, и это влияние на учет запросов в других зонах может сказаться на поведении. Скажем вот в такой конфигурации: location /one { limit_req zone=soft; # rate=100r/s limit_req zone=hard; # rate=1r/s } location /two { limit_req zone=soft; # rate=100r/s } Переключение limit_req zone=hard из режима dry-run в основной по вашей схеме может привести к тому, что в location /two начнет попадать существенно больше запросов. Этот эффект может быть нежелателен. И если из данного, искусственного примера, его можно прогнозировать, то в типичном случае, когда в один location объединены ограничения по различным факторам, спрогнозировать может быть трудно, а dry-run работающий в рамках одной зоны его просто не покажет. > > Если мы будем действовать также, как без режима dry-run, но только пропускать > > запрос, то это повлияет на работу сервера парадоксальным образом - более > > жесткое ограничение в режиме dry-run будет приводить к пропусканию сервером > > большего количества запросов, чем при его отсутствии. > > Другие, не тестовые директивы, могут отклонить запрос. > > Я вижу применение например следующим: > > limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s; #perip > limit_req_zone $server_name zone=two:10m rate=10r/s; #perserver > > limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s dry-run; #test zone > > location / { > limit_req zone=test; # rate = 1 r/s, dry run > limit_req zone=one; # rate = 2 r/s > limit_req zone=two; # rate = 100 r/s > } > > Цель добавления зоны test - увидеть, какое количество запросов будет > задержано/отклонено, если мы уменьшим rate с 2r/s до 1r/s в зоне one. > А вот и не получится увидеть. 1r/s в режиме dry-run может отклонить существенно меньше запросов, чем в обычном режиме. Произойти это может из-за того, что часть запросов, которые могли бы попасть под ограничение в zone=test будут отклонены в зонах one и two. Работа ограничений в зонах one и two изменится при выключении dry-run в зоне test. > Я думаю, что вполне понятно то, что если в контексте есть ограничение с зоной > one с rate=2r/s, то добавление ограничения с тестовой зоной test с rate=3r/s не > покажет "количества ограничений", но это и не ожидается и не требуется. > Зависит от критерия, по которому производится ограничение. -- Валентин Бартенев From sejo412 на gmail.com Tue Feb 2 17:53:01 2016 From: sejo412 на gmail.com (Paul S. ) Date: Tue, 2 Feb 2016 20:53:01 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QvNC+0LPQuNGC0LUg0LTRgNGD0LfRjNGPISFVYnVudHUgMTQtMDQg?= =?UTF-8?B?bmduaXggcGhwLWZwbQ==?= In-Reply-To: References: <690fd4a63e505d5076f0fc9d078ec7fd.NginxMailingListRussian@forum.nginx.org> <7252471454414179@web5o.yandex.ru> Message-ID: Казалось бы, при чем тут nginx ) 2 февраля 2016 г., 15:39 пользователь Aleksandr Sytar написал: > > > 2 февраля 2016 г., 15:18 пользователь Alex Domoradov > написал: > >> > Вот может еще у когото будет такая же проблемма!Удачи всем >> за такое надо бить по рукам, сразу. Особенно, если на продакшене >> > > Зря вы так, до пятницы еще далеко, авось и починить успеет > > >> >> 2016-02-02 13:56 GMT+02:00 Konstantin Tokarev : >> >>> >>> >>> 02.02.2016, 13:18, "Alex_Cardo" : >>> > Пропал файлик /var/run/php5-fpm.sock. Как его востановить? >>> >>> Советую на досуге разобраться, что такое Unix Domain Socket и чем он >>> отличается от обычного файла. >>> >>> > >>> > вот мои конфиг php >>> > >>> > access_log /var/log/nginx/access.log; >>> > error_log /var/log/nginx/error.log; >>> > location ~ \.php$ { >>> > root /var/www/AS_BTI/PHP; >>> > try_files $uri =404; >>> > include fastcgi_params; >>> > fastcgi_split_path_info ^(.+?\.php)(/.*)$; >>> > fastcgi_pass unix:/var/run/php5-fpm.sock; >>> > fastcgi_index index.php; >>> > fastcgi_param SCRIPT_FILENAME >>> > /var/www/AS_BTI/PHP$fastcgi_script_name; >>> > >>> > } >>> > >>> > /var/run/????? cдесь он всегда был ,все работало отлично.к обработке >>> php >>> > кода вообще небыло замечаний.А потом я взял и перегрузи компьютер и вот >>> > ошибка сразу error log мой *1 connect() to unix:/var/run/php5-fpm.sock >>> > failed (2: No such file or directory) while connecting to upstream, >>> client: >>> > 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: >>> > "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost" >>> > >>> > Помогите кто чем может!!спасибо друзья!! >>> > >>> > Posted at Nginx Forum: >>> https://forum.nginx.org/read.php?21,264258,264258#msg-264258 >>> > >>> > _______________________________________________ >>> > nginx-ru mailing list >>> > nginx-ru на nginx.org >>> > http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> -- >>> Regards, >>> Konstantin >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- best reguards Paul S. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sejo412 на gmail.com Tue Feb 2 18:00:16 2016 From: sejo412 на gmail.com (Paul S. ) Date: Tue, 2 Feb 2016 21:00:16 +0300 Subject: geo2nginx.pl In-Reply-To: <2810576646.20160201220602@softsearch.ru> References: <2810576646.20160201220602@softsearch.ru> Message-ID: Дистрибутив чего именно? не встречал такого скрипта. 1 февраля 2016 г., 22:06 пользователь Михаил Монашёв < postmaster на softsearch.ru> написал: > Здравствуйте. > > В составе дистрибутива идёт реально не работающий скрипт. Формат базы > MaxMind-а поменялся. > > -- > С уважением, > Михаил mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- best reguards Paul S. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From sejo412 на gmail.com Tue Feb 2 18:08:14 2016 From: sejo412 на gmail.com (Paul Sin) Date: Tue, 2 Feb 2016 21:08:14 +0300 Subject: =?UTF-8?B?UmU6INC00L7QsdCw0LLQuNGC0YwgdXJpINC6INC/0YDQvtGB0LrQuNC/0LDRgdGD?= In-Reply-To: <13910065882.20160129193523@softsearch.ru> References: <95a7e0dad340a0c39fd71e3501dbfd61.NginxMailingListRussian@forum.nginx.org> <13910065882.20160129193523@softsearch.ru> Message-ID: Вы не поверите, но: *proxy_pass http://$backend$uri?$args* 29 января 2016 г., 19:35 пользователь Михаил Монашёв < postmaster на softsearch.ru> написал: > Здравствуйте, erosio. > > > как можно добавить uri условно '/newpage' к proxy_pass http://$backend; > ? > > backend задан через set и если туда сразу uri пихать то работать > > отказывается. > > пробовал rewrite но тоже безуспешно > > debug log включите и станет понятно, как оно там внутри работает и > почему не работает. > > А добавить вроде можно так: > proxy_pass http://$backend/newpage; > > -- > С уважением, > Михаил mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- best reguards Paul Sin ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Tue Feb 2 18:31:21 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Wed, 3 Feb 2016 00:31:21 +0600 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <10173949.ECZf4n3iVO@vbart-workstation> References: <15110208852.20160201154804@ngs.ru> <4009769.SbzdsTydZ6@vbart-workstation> <193391564.20160202220837@ngs.ru> <10173949.ECZf4n3iVO@vbart-workstation> Message-ID: <1553440698.20160203003121@ngs.ru> Здравствуйте, Валентин. >> Перевод в боевой режим может только уменьшить число запросов, поступающих на >> учет нетестовые зоны, что является ожидаемым поведением в силу более жесткого >> ограничения во включаемой зоне. >> > [..] > Да, и это влияние на учет запросов в других зонах может сказаться на > поведении. > Скажем вот в такой конфигурации: > location /one { > limit_req zone=soft; # rate=100r/s > limit_req zone=hard; # rate=1r/s > } > location /two { > limit_req zone=soft; # rate=100r/s > } > Переключение limit_req zone=hard из режима dry-run в основной по вашей > схеме может привести к тому, что в location /two начнет попадать существенно > больше запросов. > Этот эффект может быть нежелателен. Такой эффект не зависит от схемы, может произойти и в случае, если в "location /one" будет добавлена директива "limit_req_dry_run on;", и в случае, если "limit_req zone=hard;" будет просто добавлена, без тестирования вовсе. > Переключение .. может привести к тому, что в location /two начнет попадать > существенно больше запросов. > ... , а dry-run работающий в рамках одной зоны его просто не покажет. Эффект заключается в том, что ограничение в location /two сможет _пропускать_ существенно больше запросов. Однако возникает вопрос - откуда они возьмутся, чтобы его смог показать какой-либо из режимов тестирования? >> Цель добавления зоны test - увидеть, какое количество запросов будет >> задержано/отклонено, если мы уменьшим rate с 2r/s до 1r/s в зоне one. > А вот и не получится увидеть. 1r/s в режиме dry-run может отклонить > существенно меньше запросов, чем в обычном режиме. Произойти это может > из-за того, что часть запросов, которые могли бы попасть под ограничение > в zone=test будут отклонены в зонах one и two. Да, согласен - при наличии отклонений в зонах one и two количество увидеть не получится. Часть запросов (по одинаковому ключу) в зоне test не будет учтена, т.к. сработает ограничение зоны test, а часть не будет учтена, т.к. сработает ограничение зоны one. Чтобы подсчитать количество, необходимо добавлять в limit_req_zone параметр warn_rate, в limit_req - warn_burst, а затем вести подсчеты превышений ограничений по этим параметрам параллельно основным подсчетам. Такой вариант когда-либо рассматривался? Однако я исхожу из предположения, что мы имеем зону one, которая не ограничивает никого лишнего, и хотим убедится, что изменение её настроек также никого лишнего ограничивать не будет. Также предполагаем, что со второй зоной two тоже всё в порядке и она также никого лишнего не ограничивает. Для этих целей мы заводим зону test с таким же ключем, как и в зоне one. Т.е. все манипуляции тестирования нацелены на детектирование факта отсутствия предупреждений от тестовой зоны, в условиях отсутствия предупреждений от боевых зон. В этих условиях отсутствия (критически малого числа) отклонений запросов в зонах one и two предлагаемый мной подход по оценке применимости настроек зоны test вполне жизнеспособен и весьма актуален. > Работа ограничений в зонах one и two изменится при выключении dry-run в > зоне test. По задумке, в боевой режим будут переводиться _параметры_, а не зона test - т.е. по результатам теста будет производиться коррекция параметров зоны one, а зона test будет удалена. >> Я думаю, что вполне понятно то, что если в контексте есть ограничение с зоной >> one с rate=2r/s, то добавление ограничения с тестовой зоной test с rate=3r/s не >> покажет "количества ограничений", но это и не ожидается и не требуется. > Зависит от критерия, по которому производится ограничение. Предполагается, что у тестируемой и боевой зоны одинаковый критерий. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From postmaster на softsearch.ru Tue Feb 2 19:03:38 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Tue, 2 Feb 2016 22:03:38 +0300 Subject: geo2nginx.pl In-Reply-To: References: <2810576646.20160201220602@softsearch.ru> Message-ID: <965405249.20160202220338@softsearch.ru> Здравствуйте, Paul. Не встречали, а он есть! :-) https://trac.nginx.org/nginx/browser/nginx/contrib/geo2nginx.pl > Дистрибутив чего именно? не встречал такого скрипта. >> В составе дистрибутива идёт реально не работающий скрипт. Формат базы >> MaxMind-а поменялся. -- С уважением, Михаил mailto:postmaster на softsearch.ru From vbart на nginx.com Tue Feb 2 19:05:35 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Tue, 02 Feb 2016 22:05:35 +0300 Subject: =?UTF-8?B?UmU6INCj0LvRg9GH0YjQtdC90LjQtSBuZ3hfaHR0cF9saW1pdF9yZXFfbW9kdWxl?= In-Reply-To: <1553440698.20160203003121@ngs.ru> References: <15110208852.20160201154804@ngs.ru> <10173949.ECZf4n3iVO@vbart-workstation> <1553440698.20160203003121@ngs.ru> Message-ID: <3316174.2kAfoFpRWJ@vbart-workstation> On Wednesday 03 February 2016 00:31:21 Pavel V. wrote: > Здравствуйте, Валентин. > > >> Перевод в боевой режим может только уменьшить число запросов, поступающих на > >> учет нетестовые зоны, что является ожидаемым поведением в силу более жесткого > >> ограничения во включаемой зоне. > >> > > [..] > > > Да, и это влияние на учет запросов в других зонах может сказаться на > > поведении. > > > Скажем вот в такой конфигурации: > > > location /one { > > limit_req zone=soft; # rate=100r/s > > limit_req zone=hard; # rate=1r/s > > } > > > location /two { > > limit_req zone=soft; # rate=100r/s > > } > > > Переключение limit_req zone=hard из режима dry-run в основной по вашей > > схеме может привести к тому, что в location /two начнет попадать существенно > > больше запросов. > > > Этот эффект может быть нежелателен. > > Такой эффект не зависит от схемы, может произойти и в случае, если в "location > /one" будет добавлена директива "limit_req_dry_run on;", и в случае, если > "limit_req zone=hard;" будет просто добавлена, без тестирования вовсе. > > > Переключение .. может привести к тому, что в location /two начнет попадать > > существенно больше запросов. > > ... , а dry-run работающий в рамках одной зоны его просто не покажет. > > Эффект заключается в том, что ограничение в location /two сможет _пропускать_ > существенно больше запросов. Однако возникает вопрос - откуда они возьмутся, > чтобы его смог показать какой-либо из режимов тестирования? > > >> Цель добавления зоны test - увидеть, какое количество запросов будет > >> задержано/отклонено, если мы уменьшим rate с 2r/s до 1r/s в зоне one. > > > А вот и не получится увидеть. 1r/s в режиме dry-run может отклонить > > существенно меньше запросов, чем в обычном режиме. Произойти это может > > из-за того, что часть запросов, которые могли бы попасть под ограничение > > в zone=test будут отклонены в зонах one и two. > > Да, согласен - при наличии отклонений в зонах one и two количество увидеть не > получится. Часть запросов (по одинаковому ключу) в зоне test не будет учтена, т.к. > сработает ограничение зоны test, а часть не будет учтена, т.к. сработает > ограничение зоны one. > > Чтобы подсчитать количество, необходимо добавлять в limit_req_zone параметр > warn_rate, в limit_req - warn_burst, а затем вести подсчеты превышений > ограничений по этим параметрам параллельно основным подсчетам. Такой вариант > когда-либо рассматривался? > > Однако я исхожу из предположения, что мы имеем зону one, которая не ограничивает > никого лишнего, и хотим убедится, что изменение её настроек также никого лишнего > ограничивать не будет. Также предполагаем, что со второй зоной two тоже всё в > порядке и она также никого лишнего не ограничивает. > > Для этих целей мы заводим зону test с таким же ключем, как и в зоне one. > > Т.е. все манипуляции тестирования нацелены на детектирование факта отсутствия > предупреждений от тестовой зоны, в условиях отсутствия предупреждений от боевых > зон. > > В этих условиях отсутствия (критически малого числа) отклонений запросов в зонах > one и two предлагаемый мной подход по оценке применимости настроек зоны test > вполне жизнеспособен и весьма актуален. > > > > Работа ограничений в зонах one и two изменится при выключении dry-run в > > зоне test. > > По задумке, в боевой режим будут переводиться _параметры_, а не зона > test - т.е. по результатам теста будет производиться коррекция параметров зоны > one, а зона test будет удалена. > > > >> Я думаю, что вполне понятно то, что если в контексте есть ограничение с зоной > >> one с rate=2r/s, то добавление ограничения с тестовой зоной test с rate=3r/s не > >> покажет "количества ограничений", но это и не ожидается и не требуется. > > > Зависит от критерия, по которому производится ограничение. > > Предполагается, что у тестируемой и боевой зоны одинаковый критерий. > Да идея то вполне понятна, тут вопрос в том, а оправдывает ли цель такие сложности и будет ли этим кто-то пользоваться, кроме пары человек. Замечу еще что поведение клиентов может меняться в зависимости от ограничений и задержки, так что тестирование в этом случае опять же не поможет предсказать результаты. Хочется следующего: 1. Чтобы легко включалось в типичном случае, когда хочется протестировать ограничения в конкретном location к конкретному ресурсу; 2. Реализация была простой, не усложняла алгоритмику модуля. Шанс быть принятым у простого патча гораздо выше. Предлагаю начать с limit_req off. По опыту, есть высокая вероятность, что на этом энтузиазм и закончится. -- Валентин Бартенев From ek на nginx.com Tue Feb 2 19:53:52 2016 From: ek на nginx.com (Ekaterina Kukushkina) Date: Tue, 2 Feb 2016 22:53:52 +0300 Subject: geo2nginx.pl In-Reply-To: <965405249.20160202220338@softsearch.ru> References: <2810576646.20160201220602@softsearch.ru> <965405249.20160202220338@softsearch.ru> Message-ID: Здравствуйте, Михаил. Боже, это скрипт 10-ти летней давности, для того, чтобы впихнуть MaxMind в geo модуль. Давно уже есть geoip модуль, который и надо использовать для таких целей http://nginx.org/en/docs/http/ngx_http_geoip_module.html Он полностью совместим с Legacy форматом MaxMind. > On 02 Feb 2016, at 22:03, Михаил Монашёв wrote: > > Не встречали, а он есть! :-) > https://trac.nginx.org/nginx/browser/nginx/contrib/geo2nginx.pl > -- Ekaterina Kukushkina NGINX, Inc. From chipitsine на gmail.com Tue Feb 2 20:35:12 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 3 Feb 2016 01:35:12 +0500 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> Message-ID: а в чем полезность того факта, что мы можем определить, что запрос пришел через Яндекс или Оперу турбо? 30 января 2016 г., 17:19 пользователь Oleg Motienko написал: > в нашем случае, фидбэк от клиентов и после анализ логов > > On Tue, Jan 26, 2016 at 1:45 PM, Илья Шипицин > wrote: > >> какой-то алгоритм получения этого списка ? >> >> 2016-01-26 15:10 GMT+05:00 Oleg Motienko : >> >>> есть еще такой список прокси: >>> >>> # Yandex >>> set_real_ip_from 5.45.192.0/24; >>> set_real_ip_from 141.8.189.0/24; >>> set_real_ip_from 5.45.255.0/24; >>> set_real_ip_from 84.201.143.0/24; >>> >>> # Opera Turbo proxies >>> # as39832 http://as.robtex.com/as39832.html#bgp >>> set_real_ip_from 37.228.104.0/21; >>> set_real_ip_from 82.145.208.0/20; >>> set_real_ip_from 91.203.96.0/22; >>> set_real_ip_from 141.0.8.0/21; >>> set_real_ip_from 185.26.180.0/22; >>> set_real_ip_from 195.189.142.0/23; >>> # AS21837 >>> set_real_ip_from 107.167.96.0/19; >>> # other opera >>> set_real_ip_from 94.246.126.0/23; >>> set_real_ip_from 64.255.180.0/24; >>> set_real_ip_from 64.255.164.0/24; >>> set_real_ip_from 80.239.242.0/23; >>> set_real_ip_from 80.232.117.0/24; >>> set_real_ip_from 217.212.230.0/23; >>> #opera china >>> set_real_ip_from 58.67.157.0/24; >>> set_real_ip_from 59.151.106.240/28; >>> #opera end >>> >>> #google proxy >>> set_real_ip_from 66.249.80.0/22; >>> set_real_ip_from 66.249.84.0/23; >>> set_real_ip_from 66.249.88.0/22; >>> set_real_ip_from 66.249.92.0/23; >>> set_real_ip_from 66.102.9.0/24; >>> #google proxy end >>> >>> real_ip_header X-Forwarded-For; >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Regards, > Oleg > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Tue Feb 2 23:18:22 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 3 Feb 2016 02:18:22 +0300 Subject: geo2nginx.pl In-Reply-To: <2810576646.20160201220602@softsearch.ru> References: <2810576646.20160201220602@softsearch.ru> Message-ID: <496266355.20160203021822@softsearch.ru> Здравствуйте, Михаил. Прошу прощения, база в старом формате лежит тут: http://dev.maxmind.com/geoip/legacy/geolite/#Downloads Не знаю, на сколько она свежая, правда. > В составе дистрибутива идёт реально не работающий скрипт. Формат базы > MaxMind-а поменялся. -- С уважением, Михаил mailto:postmaster на softsearch.ru From postmaster на softsearch.ru Tue Feb 2 23:19:11 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 3 Feb 2016 02:19:11 +0300 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> Message-ID: <173586484.20160203021911@softsearch.ru> Здравствуйте, Илья. > а в чем полезность того факта, что мы можем определить, что запрос > пришел через Яндекс или Оперу турбо? Узнаем настоящее ip юзера. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на forum.nginx.org Wed Feb 3 04:17:28 2016 From: nginx-forum на forum.nginx.org (tetramin) Date: Tue, 02 Feb 2016 23:17:28 -0500 Subject: =?UTF-8?B?UmU6IHNlcnZlciBuYW1lINC4INC00LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+?= =?UTF-8?B?0LTQtNC+0LzQtdC90Ys=?= In-Reply-To: References: Message-ID: <8f8ed41bb0550e00c922a49c1fc0ebff.NginxMailingListRussian@forum.nginx.org> Вообще, возможно ли то, что я хочу, сделать в одной секции server? > На всякий случай прилагаю полный конфиг. > Фронтенд: http://pastebin.com/0v1vWSTK > Бэкенд: http://pastebin.com/FJqGjLnS > Также, на всякий случай, выкладываю лог: http://pastebin.com/khJJWaEL > При таких настройках адрес в адресной строке браузера заменяется на www.example.ru и идёт бесконечный редирект на этот адрес, о чём в итоге сообщает браузер. > Откуда берётся этот www? В скриптах сайта нет и не было такого никогда. > Да, я читал про то, как nginx обрабатывает запросы и об именах сервера... Но не могу врубиться, что же я делаю не так. Ведь мне кажется, что именно так у меня и настроено, как там написано... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264185,264300#msg-264300 From chipitsine на gmail.com Wed Feb 3 04:21:24 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 3 Feb 2016 09:21:24 +0500 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: <173586484.20160203021911@softsearch.ru> References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> Message-ID: Каким образом? 3 февр. 2016 г. 4:19 пользователь "Михаил Монашёв" написал: > Здравствуйте, Илья. > > > а в чем полезность того факта, что мы можем определить, что запрос > > пришел через Яндекс или Оперу турбо? > > Узнаем настоящее ip юзера. > > -- > С уважением, > Михаил mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Wed Feb 3 16:21:05 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 3 Feb 2016 19:21:05 +0300 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> Message-ID: <1048386199.20160203192105@softsearch.ru> Здравствуйте, Илья. Он пишется в заголовок X-Forwarded-For . Зайдите Оперой в турбо-режиме на свой сайт и посмотрите, какие заголовки в запросе придут. > Каким образом? >>> а в чем полезность того факта, что мы можем определить, что запрос >>> пришел через Яндекс или Оперу турбо? >> >> Узнаем настоящее ip юзера. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на forum.nginx.org Wed Feb 3 18:11:39 2016 From: nginx-forum на forum.nginx.org (ex) Date: Wed, 03 Feb 2016 13:11:39 -0500 Subject: =?UTF-8?B?UmU6IHNlcnZlciBuYW1lINC4INC00LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+?= =?UTF-8?B?0LTQtNC+0LzQtdC90Ys=?= In-Reply-To: <092b04354839fab9021746b9fb49c271.NginxMailingListRussian@forum.nginx.org> References: <092b04354839fab9021746b9fb49c271.NginxMailingListRussian@forum.nginx.org> Message-ID: <5e780fc28fc7d7589c7db266fd5e5714.NginxMailingListRussian@forum.nginx.org> >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi record length: 111 >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi parser: 0 >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi header: "Status: 302 Moved Temporarily" >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi parser: 0 >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi header: "Location: http://www.example.ru/" >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi parser: 0 >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi header: "Content-type: text/html; charset=UTF-8" >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi parser: 1 >2016/01/27 12:23:45 [debug] 3693#0: *97 http fastcgi header done Ваш бекенд дает редирект Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264185,264311#msg-264311 From chipitsine на gmail.com Wed Feb 3 20:32:16 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 4 Feb 2016 01:32:16 +0500 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: <1048386199.20160203192105@softsearch.ru> References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> <1048386199.20160203192105@softsearch.ru> Message-ID: мы пишем вот такую штуку map $http_x_forwarded_for $r_ip { '' $remote_addr; default $http_x_forwarded_for; } чем в данном случае помогает то, что я знаю ip-адрес серверов оперы или яндекса ? 3 февраля 2016 г., 21:21 пользователь Михаил Монашёв < postmaster на softsearch.ru> написал: > Здравствуйте, Илья. > > Он пишется в заголовок X-Forwarded-For . Зайдите Оперой в турбо-режиме > на свой сайт и посмотрите, какие заголовки в запросе придут. > > > Каким образом? > > >>> а в чем полезность того факта, что мы можем определить, что запрос > >>> пришел через Яндекс или Оперу турбо? > >> > >> Узнаем настоящее ip юзера. > > -- > С уважением, > Михаил mailto:postmaster на softsearch.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Wed Feb 3 22:17:57 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Thu, 4 Feb 2016 04:17:57 +0600 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> <1048386199.20160203192105@softsearch.ru> Message-ID: <1675414794.20160204041757@ngs.ru> Здравствуйте, Илья. Вы писали 4 февраля 2016 г., 2:32:16: > мы пишем вот такую штуку > map $http_x_forwarded_for $r_ip { > '' $remote_addr; > default $http_x_forwarded_for; > } В такой конфигурации вы абсолютно доверяете присланному вам (кем угодно) заголовку X-Forwarded-For. Атакующий может подставить туда любые данные, в т.ч и не IP. Использовать полученное таким образом в качестве "настоящего IP пользователя" категорически нельзя. > чем в данном случае помогает то, что я знаю ip-адрес серверов оперы или яндекса ? Указав список этих адресов, вы можете принимать заголовок X-Forwarded-For только от них. Полученному таким образом значению IP пользователя можно доверять в несколько большей степени. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From chipitsine на gmail.com Thu Feb 4 03:38:13 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 4 Feb 2016 08:38:13 +0500 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: <1675414794.20160204041757@ngs.ru> References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> <1048386199.20160203192105@softsearch.ru> <1675414794.20160204041757@ngs.ru> Message-ID: ok, идею понял. а не лучше будет отличать оперу и яндекс по useragent? который мы знаем с большей степенью достоверности, чем адреса этих проксей. 4 февраля 2016 г., 3:17 пользователь Pavel V. написал: > Здравствуйте, Илья. > > Вы писали 4 февраля 2016 г., 2:32:16: > > > мы пишем вот такую штуку > > > map $http_x_forwarded_for $r_ip { > > '' $remote_addr; > > default $http_x_forwarded_for; > > } > > В такой конфигурации вы абсолютно доверяете присланному вам (кем угодно) > заголовку X-Forwarded-For. Атакующий может подставить туда любые данные, в > т.ч и > не IP. Использовать полученное таким образом в качестве "настоящего IP > пользователя" категорически нельзя. > > > чем в данном случае помогает то, что я знаю ip-адрес серверов оперы или > яндекса ? > > Указав список этих адресов, вы можете принимать заголовок X-Forwarded-For > только от них. > Полученному таким образом значению IP пользователя можно доверять в > несколько большей > степени. > > > -- > С уважением, > Pavel mailto:pavel2000 на ngs.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Thu Feb 4 05:31:07 2016 From: pavel2000 на ngs.ru (Pavel V.) Date: Thu, 4 Feb 2016 11:31:07 +0600 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> <1048386199.20160203192105@softsearch.ru> <1675414794.20160204041757@ngs.ru> Message-ID: <13710470784.20160204113107@ngs.ru> Здравствуйте, Илья. Вы писали 4 февраля 2016 г., 9:38:13: > а не лучше будет отличать оперу и яндекс по useragent? > который мы знаем с большей степенью достоверности, чем адреса этих проксей. Useragent можно подделывать точно так же, как и X-Forwarded-For. Адреса можно подтвердить по AS num, а также можно собрать статистику по отправляемым ими заголовкам с целью подтверждения/детектирования новых "достоверных проксей". Например, опера турбо отправляет заголовок "X-Content-Opt", по которому её можно определять. Однако, я сейчас провел быстрый тест работы опера турбо и получил неожиданный результат. К моему серверу с 82.145.208.146 пришел следующий запрос: GET /?opera HTTP/1.1 Host: my.host.example.com accept-language: ru-RU,ru;q=0.9,en;q=0.8 Accept-Encoding: gzip, deflate accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 user-agent: Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.17 X-Forwarded-For: 141.0.15.155 X-Content-Opt: Turbo/4.29.5717 Указанный в X-Forwarded-For 141.0.15.15 - это совершенно не мой IP. # host 82.145.208.146 146.208.145.82.in-addr.arpa domain name pointer z10-15.opera-mini.net. # host 141.0.15.155 155.15.0.141.in-addr.arpa domain name pointer z09-04-11.opera-mini.net. Так что не всё там гладко, как хотелось бы. -- С уважением, Pavel mailto:pavel2000 на ngs.ru From chipitsine на gmail.com Thu Feb 4 07:46:55 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 4 Feb 2016 12:46:55 +0500 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: <13710470784.20160204113107@ngs.ru> References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> <173586484.20160203021911@softsearch.ru> <1048386199.20160203192105@softsearch.ru> <1675414794.20160204041757@ngs.ru> <13710470784.20160204113107@ngs.ru> Message-ID: в принципе интересная тема. надо поизучать поглубже. у CloudFlare хорошие хедеры (отличные от чего-либо) и хорошо документированный список адресов по турборежимам - ок, понял, что есть спрос на эту тему 4 февраля 2016 г., 10:31 пользователь Pavel V. написал: > Здравствуйте, Илья. > > Вы писали 4 февраля 2016 г., 9:38:13: > > > а не лучше будет отличать оперу и яндекс по useragent? > > который мы знаем с большей степенью достоверности, чем адреса этих > проксей. > > Useragent можно подделывать точно так же, как и X-Forwarded-For. > > Адреса можно подтвердить по AS num, а также можно собрать статистику по > отправляемым ими заголовкам с целью подтверждения/детектирования новых > "достоверных проксей". > > Например, опера турбо отправляет заголовок "X-Content-Opt", по которому её > можно > определять. > > Однако, я сейчас провел быстрый тест работы опера турбо и получил > неожиданный > результат. К моему серверу с 82.145.208.146 пришел следующий запрос: > > GET /?opera HTTP/1.1 > Host: my.host.example.com > accept-language: ru-RU,ru;q=0.9,en;q=0.8 > Accept-Encoding: gzip, deflate > accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, > image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 > user-agent: Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.17 > X-Forwarded-For: 141.0.15.155 > X-Content-Opt: Turbo/4.29.5717 > > Указанный в X-Forwarded-For 141.0.15.15 - это совершенно не мой IP. > > # host 82.145.208.146 > 146.208.145.82.in-addr.arpa domain name pointer z10-15.opera-mini.net. > > # host 141.0.15.155 > 155.15.0.141.in-addr.arpa domain name pointer z09-04-11.opera-mini.net. > > Так что не всё там гладко, как хотелось бы. > > > > > -- > С уважением, > Pavel mailto:pavel2000 на ngs.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From simplebox66 на gmail.com Thu Feb 4 13:44:09 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Thu, 4 Feb 2016 16:44:09 +0300 Subject: =?UTF-8?B?0J7Qv9GG0LjQuCDQtNC40YDQtdC60YLQuNCy0YsgbGlzdGVu?= Message-ID: Приветствую. Есть куча хостов, соответственно в конфиге nginx присутствует некоторое количество server{ } В каждом контексте server прописана директива listen 80; В одном месте прописано listen 80 deferred backlog=32768; Если я в контексте еще одного server заменю listen 80; на listen 80 deferred backlog=32768; то nginx начинает ругаться nginx: [emerg] duplicate listen options for 0.0.0.0:80 in /etc/nginx/nginx.conf:39 nginx: configuration file /etc/nginx/nginx.conf test failed Получается что если я в одном месте прописал listen 80 deferred backlog=32768; то во всех других где прописано listen 80; автоматически используется опция backlog=32768 ? Объясните пожалуйста, не совсем понимаю этот момент, а в документации об этом не сказанно. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Thu Feb 4 13:46:53 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 04 Feb 2016 16:46:53 +0300 Subject: =?UTF-8?B?UmU6INCe0L/RhtC40Lgg0LTQuNGA0LXQutGC0LjQstGLIGxpc3Rlbg==?= In-Reply-To: References: Message-ID: <2043561.UzoXEDRVR2@vbart-workstation> On Thursday 04 February 2016 16:44:09 Иван Мишин wrote: > Приветствую. > Есть куча хостов, соответственно в конфиге nginx присутствует некоторое > количество server{ } > В каждом контексте server прописана директива listen 80; > В одном месте прописано listen 80 deferred backlog=32768; > Если я в контексте еще одного server заменю listen 80; на listen 80 > deferred backlog=32768; > то nginx начинает ругаться > nginx: [emerg] duplicate listen options for 0.0.0.0:80 in > /etc/nginx/nginx.conf:39 > nginx: configuration file /etc/nginx/nginx.conf test failed > > Получается что если я в одном месте прописал listen 80 deferred > backlog=32768; то во всех других где прописано listen 80; автоматически > используется опция backlog=32768 ? Объясните пожалуйста, не совсем понимаю > этот момент, а в документации об этом не сказанно. В документации об этом сказано так: | В директиве listen можно также указать несколько дополнительных параметров, | специфичных для связанных с сокетами системных вызовов. Эти параметры можно | задать в любой директиве listen, но только один раз для указанной пары | адрес:порт. И далее эти параметры перечислены. http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen -- Валентин Бартенев From simplebox66 на gmail.com Thu Feb 4 13:55:36 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Thu, 4 Feb 2016 16:55:36 +0300 Subject: =?UTF-8?B?UmU6INCe0L/RhtC40Lgg0LTQuNGA0LXQutGC0LjQstGLIGxpc3Rlbg==?= In-Reply-To: <2043561.UzoXEDRVR2@vbart-workstation> References: <2043561.UzoXEDRVR2@vbart-workstation> Message-ID: Соответственно далее пара адрес:порт унаследует настройки указанные единожды? 4 февраля 2016 г., 16:46 пользователь Валентин Бартенев написал: > On Thursday 04 February 2016 16:44:09 Иван Мишин wrote: > > Приветствую. > > Есть куча хостов, соответственно в конфиге nginx присутствует некоторое > > количество server{ } > > В каждом контексте server прописана директива listen 80; > > В одном месте прописано listen 80 deferred backlog=32768; > > Если я в контексте еще одного server заменю listen 80; на listen 80 > > deferred backlog=32768; > > то nginx начинает ругаться > > nginx: [emerg] duplicate listen options for 0.0.0.0:80 in > > /etc/nginx/nginx.conf:39 > > nginx: configuration file /etc/nginx/nginx.conf test failed > > > > Получается что если я в одном месте прописал listen 80 deferred > > backlog=32768; то во всех других где прописано listen 80; автоматически > > используется опция backlog=32768 ? Объясните пожалуйста, не совсем > понимаю > > этот момент, а в документации об этом не сказанно. > > В документации об этом сказано так: > > | В директиве listen можно также указать несколько дополнительных > параметров, > | специфичных для связанных с сокетами системных вызовов. Эти параметры > можно > | задать в любой директиве listen, но только один раз для указанной пары > | адрес:порт. > > И далее эти параметры перечислены. > > http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Thu Feb 4 14:12:21 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 04 Feb 2016 17:12:21 +0300 Subject: =?UTF-8?B?UmU6INCe0L/RhtC40Lgg0LTQuNGA0LXQutGC0LjQstGLIGxpc3Rlbg==?= In-Reply-To: References: <2043561.UzoXEDRVR2@vbart-workstation> Message-ID: <11829434.ueM76HZ80K@vbart-workstation> On Thursday 04 February 2016 16:55:36 Иван Мишин wrote: > Соответственно далее пара адрес:порт унаследует настройки указанные > единожды? > [..] Можно и так сказать. Настройки применяются на слушающий сокет, а он у вас один для нескольких виртуальных серверов. -- Валентин Бартенев From motienko на gmail.com Sat Feb 6 06:04:30 2016 From: motienko на gmail.com (Oleg Motienko) Date: Sat, 6 Feb 2016 09:04:30 +0300 Subject: =?UTF-8?B?UmU6IGdlb2lwINC4INC/0YDQvtC60YHQuA==?= In-Reply-To: References: <56A1053B.4090209@kpi.ua> <16710353000.20160121195230@softsearch.ru> Message-ID: Узнаём настоящий ip адрес, начинают работать блокировки и geoip. 2016-02-02 23:35 GMT+03:00 Илья Шипицин : > а в чем полезность того факта, что мы можем определить, что запрос пришел > через Яндекс или Оперу турбо? > > > > 30 января 2016 г., 17:19 пользователь Oleg Motienko > написал: > > в нашем случае, фидбэк от клиентов и после анализ логов >> >> On Tue, Jan 26, 2016 at 1:45 PM, Илья Шипицин >> wrote: >> >>> какой-то алгоритм получения этого списка ? >>> >>> 2016-01-26 15:10 GMT+05:00 Oleg Motienko : >>> >>>> есть еще такой список прокси: >>>> >>>> # Yandex >>>> set_real_ip_from 5.45.192.0/24; >>>> set_real_ip_from 141.8.189.0/24; >>>> set_real_ip_from 5.45.255.0/24; >>>> set_real_ip_from 84.201.143.0/24; >>>> >>>> # Opera Turbo proxies >>>> # as39832 http://as.robtex.com/as39832.html#bgp >>>> set_real_ip_from 37.228.104.0/21; >>>> set_real_ip_from 82.145.208.0/20; >>>> set_real_ip_from 91.203.96.0/22; >>>> set_real_ip_from 141.0.8.0/21; >>>> set_real_ip_from 185.26.180.0/22; >>>> set_real_ip_from 195.189.142.0/23; >>>> # AS21837 >>>> set_real_ip_from 107.167.96.0/19; >>>> # other opera >>>> set_real_ip_from 94.246.126.0/23; >>>> set_real_ip_from 64.255.180.0/24; >>>> set_real_ip_from 64.255.164.0/24; >>>> set_real_ip_from 80.239.242.0/23; >>>> set_real_ip_from 80.232.117.0/24; >>>> set_real_ip_from 217.212.230.0/23; >>>> #opera china >>>> set_real_ip_from 58.67.157.0/24; >>>> set_real_ip_from 59.151.106.240/28; >>>> #opera end >>>> >>>> #google proxy >>>> set_real_ip_from 66.249.80.0/22; >>>> set_real_ip_from 66.249.84.0/23; >>>> set_real_ip_from 66.249.88.0/22; >>>> set_real_ip_from 66.249.92.0/23; >>>> set_real_ip_from 66.102.9.0/24; >>>> #google proxy end >>>> >>>> real_ip_header X-Forwarded-For; >>>> >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru на nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> Regards, >> Oleg >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Regards, Oleg -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на forum.nginx.org Mon Feb 8 14:55:16 2016 From: nginx-forum на forum.nginx.org (foxmits) Date: Mon, 08 Feb 2016 09:55:16 -0500 Subject: =?UTF-8?B?0J/QvtC80L7Qs9C40YLQtSDRgSBwcm94eSBjYWNoZQ==?= Message-ID: <8e5e5979454032fff36eab913c00496e.NginxMailingListRussian@forum.nginx.org> Извините, за тупые вопросы. Только столкнулся с высоконагруженным проектом и первый раз вообще тыкаю в nginx. Ставлю я на location / { proxy_cache ИМЯ ТУТ; } Это получается же будет кешироваться тупо все запросы? Будь то личный кабинет и так далее? И результаты поиска? Как сделать чтобы на location /search было не более 5 запросов в секунду, к примеру, и результаты кешировались на 1 минуту, к примеру (но только если это одинаковые запросы). И ещё, что касаемо кучи выборок, к примеру как на том же avito. Ведь 100% там миллионы записей в кеше. Как это по памяти вообще? И как убрать кеширование с регистрации к примеру, там у меня каптча генерится, не хотелось бы чтобы эта страница вообще кешировалась. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264410,264410#msg-264410 From mdounin на mdounin.ru Tue Feb 9 14:29:59 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 9 Feb 2016 17:29:59 +0300 Subject: nginx-1.9.11 Message-ID: <20160209142958.GH70672@mdounin.ru> Изменения в nginx 1.9.11 09.02.2016 *) Добавление: теперь resolver поддерживает TCP. *) Добавление: динамические модули. *) Исправление: при использовании HTTP/2 переменная $request_length не учитывала размер заголовков запроса. *) Исправление: в модуле ngx_http_v2_module. -- Maxim Dounin http://nginx.org/ From swood на fotofor.biz Tue Feb 9 15:45:53 2016 From: swood на fotofor.biz (Anton Kiryushkin) Date: Tue, 9 Feb 2016 18:45:53 +0300 Subject: nginx-1.9.11 In-Reply-To: <20160209142958.GH70672@mdounin.ru> References: <20160209142958.GH70672@mdounin.ru> Message-ID: А можно чуть подробнее про динамические модули? На основе чего их можно делать? 9 февраля 2016 г., 17:29 пользователь Maxim Dounin написал: > Изменения в nginx 1.9.11 > 09.02.2016 > > *) Добавление: теперь resolver поддерживает TCP. > > *) Добавление: динамические модули. > > *) Исправление: при использовании HTTP/2 переменная $request_length не > учитывала размер заголовков запроса. > > *) Исправление: в модуле ngx_http_v2_module. > > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Tue Feb 9 15:53:29 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Tue, 9 Feb 2016 18:53:29 +0300 Subject: nginx-1.9.11 In-Reply-To: References: <20160209142958.GH70672@mdounin.ru> Message-ID: <56BA0B79.9000602@nginx.com> On 2/9/16 6:45 PM, Anton Kiryushkin wrote: > А можно чуть подробнее про динамические модули? На основе чего их > можно делать? > Вот здесь есть подробности https://www.nginx.com/resources/wiki/extending/ -- Maxim Konovalov From mdounin на mdounin.ru Tue Feb 9 15:57:28 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 9 Feb 2016 18:57:28 +0300 Subject: nginx-1.9.11 In-Reply-To: References: <20160209142958.GH70672@mdounin.ru> Message-ID: <20160209155727.GK70672@mdounin.ru> Hello! On Tue, Feb 09, 2016 at 06:45:53PM +0300, Anton Kiryushkin wrote: > А можно чуть подробнее про динамические модули? На основе чего их можно > делать? Совсем подробно есть тут: http://hg.nginx.org/nginx/rev/392959224560 http://hg.nginx.org/nginx/rev/85dea406e18f In short: из коробки можно собирать динамически следующие модули: $ ./auto/configure --help | grep dynamic --with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module --with-http_image_filter_module=dynamic enable dynamic ngx_http_image_filter_module --with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module --with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module --with-stream=dynamic enable dynamic TCP proxy module --add-dynamic-module=PATH enable dynamic external module Кроме того, директива --add-dynamic-module позволяет собрать динамически сторонние модули. Требуется, однако, чтобы модуль поддеживал это в своём config-скрипте. Ну и я просто оставлю эту ссылку здесь: http://mailman.nginx.org/pipermail/nginx-devel/2016-February/007874.html -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Wed Feb 10 07:59:29 2016 From: nginx-forum на forum.nginx.org (nightkeen1) Date: Wed, 10 Feb 2016 02:59:29 -0500 Subject: =?UTF-8?B?0KDQsNC30LvQuNGH0L3QvtC1INCy0YDQtdC80Y8g0L7QsdGA0LDQsdC+0YLQutC4?= =?UTF-8?B?INC+0LTQvdC+0LPQviDQuCDRgtC+0LPQviDQttC1INC30LDQv9GA0L7RgdCw?= =?UTF-8?B?INC90LAg0LHRjdC60LXQvdC00LUg0Lgg0YTRgNC+0L3RgtC10L3QtNC1Lg==?= Message-ID: <3d3db7d5f8a86083ebc5ed44542f35d3.NginxMailingListRussian@forum.nginx.org> Добрый день. Столкнулся с такой особенностью: фронтенд обращается на бэкенд за обьектом, бэкенд от дает его из кэша, далее фронтенд отдает контент клиенту, все работает, все хорошо. Но почему-то на фронтенде и бэкенде отличается время за которое был обработан запрос. Приведу пример из лога: Фронтенд: * * [09/Feb/2016:12:58:14 +0000] "GET /hls.ts HTTP/1.1" 200 MISS "123.123.123.123" 1651956 "-" "HLS Client" "15.711" "-" "-/-" "1/196861693" "0.021" "13.275" "200" RU Бэкенд: * * [09/Feb/2016:12:57:59 +0000] "GET /hls.ts HTTP/1.1" 200 HIT "-" 1651956 "-" "HLS Client" "0.388" "-" "-/-" "84/238345969" "-" "-" "-" RU Ведь по идее, upstream_response_time на фронтенде и request_time на бэкенде должны быть равны. А в моем случае это 13.275 и 0.388 соответственно. Как считается это время? Действительно ли бэкенд отдал контент быстро? В данном случае, кто является узким горлышком? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264457,264457#msg-264457 From mdounin на mdounin.ru Wed Feb 10 13:06:46 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 10 Feb 2016 16:06:46 +0300 Subject: =?UTF-8?B?UmU6INCg0LDQt9C70LjRh9C90L7QtSDQstGA0LXQvNGPINC+0LHRgNCw0LHQvtGC?= =?UTF-8?B?0LrQuCDQvtC00L3QvtCz0L4g0Lgg0YLQvtCz0L4g0LbQtSDQt9Cw0L/RgNC+?= =?UTF-8?B?0YHQsCDQvdCwINCx0Y3QutC10L3QtNC1INC4INGE0YDQvtC90YLQtdC90LQ=?= =?UTF-8?B?0LUu?= In-Reply-To: <3d3db7d5f8a86083ebc5ed44542f35d3.NginxMailingListRussian@forum.nginx.org> References: <3d3db7d5f8a86083ebc5ed44542f35d3.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160210130646.GQ70672@mdounin.ru> Hello! On Wed, Feb 10, 2016 at 02:59:29AM -0500, nightkeen1 wrote: > Добрый день. > > Столкнулся с такой особенностью: фронтенд обращается на бэкенд за обьектом, > бэкенд от дает его из кэша, далее фронтенд отдает контент клиенту, все > работает, все хорошо. Но почему-то на фронтенде и бэкенде отличается время > за которое был обработан запрос. Приведу пример из лога: > > Фронтенд: > * * [09/Feb/2016:12:58:14 +0000] "GET /hls.ts HTTP/1.1" 200 MISS > "123.123.123.123" 1651956 "-" "HLS Client" "15.711" "-" "-/-" "1/196861693" > "0.021" "13.275" "200" RU > > Бэкенд: > * * [09/Feb/2016:12:57:59 +0000] "GET /hls.ts HTTP/1.1" 200 HIT "-" 1651956 > "-" "HLS Client" "0.388" "-" "-/-" "84/238345969" "-" "-" "-" RU > > Ведь по идее, upstream_response_time на фронтенде и request_time на бэкенде > должны быть равны. А в моем случае это 13.275 и 0.388 соответственно. > Как считается это время? Действительно ли бэкенд отдал контент быстро? В > данном случае, кто является узким горлышком? $upstream_response_time - это время, за которое был получен ответ. $request_time - это время, за которое ответ был записан в сокет. Различия могут быть значительными, если буфера сокетов - большие, а канал между фронтендом и бекендом - медленный. -- Maxim Dounin http://nginx.org/ From postmaster на softsearch.ru Wed Feb 10 15:35:52 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 10 Feb 2016 18:35:52 +0300 Subject: nginx-1.9.11 In-Reply-To: <56BA0B79.9000602@nginx.com> References: <20160209142958.GH70672@mdounin.ru> <56BA0B79.9000602@nginx.com> Message-ID: <1632219914.20160210183552@softsearch.ru> Здравствуйте, Maxim. >> А можно чуть подробнее про динамические модули? На основе чего их >> можно делать? >> > Вот здесь есть подробности > https://www.nginx.com/resources/wiki/extending/ Почитал немного, но не понял, какая проблема решается спомощью динамических модулей? -- С уважением, Михаил mailto:postmaster на softsearch.ru From maxim на nginx.com Wed Feb 10 16:06:07 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 10 Feb 2016 19:06:07 +0300 Subject: nginx-1.9.11 In-Reply-To: <1632219914.20160210183552@softsearch.ru> References: <20160209142958.GH70672@mdounin.ru> <56BA0B79.9000602@nginx.com> <1632219914.20160210183552@softsearch.ru> Message-ID: <56BB5FEF.9090109@nginx.com> On 2/10/16 6:35 PM, Михаил Монашёв wrote: > Здравствуйте, Maxim. > >>> А можно чуть подробнее про динамические модули? На основе >>> чего их можно делать? >>> >> Вот здесь есть подробности >> https://www.nginx.com/resources/wiki/extending/ > > Почитал немного, но не понял, какая проблема решается спомощью > динамических модулей? > DSO предоставляют возможность добавить/удалить модули без перекомпиляции nginx. Обсуждения, почему перекомпиляция кому-то не подходит, хотелось бы избежать. -- Maxim Konovalov From nginx-forum на forum.nginx.org Wed Feb 10 16:08:54 2016 From: nginx-forum на forum.nginx.org (Lucky SB) Date: Wed, 10 Feb 2016 11:08:54 -0500 Subject: nginx-1.9.11 In-Reply-To: <20160209142958.GH70672@mdounin.ru> References: <20160209142958.GH70672@mdounin.ru> Message-ID: <1958667b8fbe5ac372ac0f56a2f540e1.NginxMailingListRussian@forum.nginx.org> не собирается пакет на центосе со спеком из src.rpm добавляем в спеке =dynamic нужным модулям и в секции сами модули, а то ругается, что файли установллены, но не упакованы %files %{_libdir}/nginx/modules/* Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264424,264472#msg-264472 From a.vasilishin на kpi.ua Wed Feb 10 16:59:41 2016 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Wed, 10 Feb 2016 18:59:41 +0200 Subject: nginx-1.9.11 In-Reply-To: <1632219914.20160210183552@softsearch.ru> References: <20160209142958.GH70672@mdounin.ru> <56BA0B79.9000602@nginx.com> <1632219914.20160210183552@softsearch.ru> Message-ID: <56BB6C7D.9040903@kpi.ua> 10.02.2016 17:35, Михаил Монашёв пишет: > Почитал немного, но не понял, какая проблема решается спомощью > динамических модулей? > > проблема превращения нгинкса в апачи :) From annulen на yandex.ru Wed Feb 10 17:01:59 2016 From: annulen на yandex.ru (Konstantin Tokarev) Date: Wed, 10 Feb 2016 20:01:59 +0300 Subject: nginx-1.9.11 In-Reply-To: <56BB6C7D.9040903@kpi.ua> References: <20160209142958.GH70672@mdounin.ru> <56BA0B79.9000602@nginx.com> <1632219914.20160210183552@softsearch.ru> <56BB6C7D.9040903@kpi.ua> Message-ID: <3551181455123719@web6m.yandex.ru> 10.02.2016, 20:00, "Андрей Василишин" : > 10.02.2016 17:35, Михаил Монашёв пишет: > >>  Почитал немного, но не понял, какая проблема решается спомощью >>  динамических модулей? > > проблема превращения нгинкса в апачи :) В апачи он превратится, когда можно будет загрузить mod_php.so :) -- Regards, Konstantin From sb на nginx.com Wed Feb 10 17:31:47 2016 From: sb на nginx.com (Sergey Budnevitch) Date: Wed, 10 Feb 2016 20:31:47 +0300 Subject: nginx-1.9.11 In-Reply-To: <1958667b8fbe5ac372ac0f56a2f540e1.NginxMailingListRussian@forum.nginx.org> References: <20160209142958.GH70672@mdounin.ru> <1958667b8fbe5ac372ac0f56a2f540e1.NginxMailingListRussian@forum.nginx.org> Message-ID: > On 10 Feb 2016, at 19:08, Lucky SB wrote: > > не собирается пакет на центосе со спеком из src.rpm > > добавляем в спеке =dynamic нужным модулям > > и в секции сами модули, а то ругается, что файли установллены, но не > упакованы Потому что в этом нет смысла. Всякие странные модули должны быть в отдельных пакетах с дополнительными зависимостями. Например динамический xslt_module с зависимостями от libxslt & libxml. > > %files > > %{_libdir}/nginx/modules/* > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264424,264472#msg-264472 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From ru на nginx.com Thu Feb 11 09:35:16 2016 From: ru на nginx.com (Ruslan Ermilov) Date: Thu, 11 Feb 2016 12:35:16 +0300 Subject: =?UTF-8?B?UmU6INGB0YDQsNCy0L3QtdC90LjQtSDRgdGC0YDQvtC6INCyIG1hcA==?= In-Reply-To: <2266676.1yg5GGJABE@vbart-workstation> References: <801CAC89-829D-4120-ABC9-3E3151E491BE@dp.uz.gov.ua> <2266676.1yg5GGJABE@vbart-workstation> Message-ID: <20160211093516.GE88341@lo0.su> On Tue, Jan 19, 2016 at 06:04:02PM +0300, Валентин Бартенев wrote: > On Tuesday 19 January 2016 14:02:36 Oleg Palij wrote: > > Добрый день! > > > > Не нашел в документации - сравнение строк (не регулярных выражений) в map регистрозависимое или нет? > > > > Судя по тому что я вижу на практике - оно регистронезависимое + в сорцах нашел: > > http/ngx_http_variables.c > > ngx_http_map_find > > key = ngx_hash_strlow(low, match->data, len); > > что вроде бы подтверждает то, что ключи приводятся к нижнему регистру. > > > > Но все-таки хотелось бы подтверждения в виде ссылки на документацию, или комментария от того кто в этом разбирается. > > > Да, регистронезависимое. http://hg.nginx.org/nginx.org/rev/68b647a96448 From bazilek на gmail.com Fri Feb 12 15:38:08 2016 From: bazilek на gmail.com (Vasil Mikhalenya) Date: Fri, 12 Feb 2016 18:38:08 +0300 Subject: nginx cache In-Reply-To: References: <2117741.WdtaKZC1TT@vbart-laptop> <20150429111818.GQ32429@mdounin.ru> Message-ID: проблема все еще воспроизводится с таким конфигом, location / { proxy_pass http://origin.example.com; proxy_set_header Host $proxy_host; proxy_cache_lock on; proxy_cache_lock_age 1d; proxy_cache_lock_timeout 1d; proxy_cache_revalidate on; proxy_cache_use_stale updating; proxy_cache_key "$uri"; add_header Cache $upstream_cache_status; add_header X-ID "{{ ansible_hostname }}"; } за пару часов nginx просто съедает >1Tb локального диска, помогает только остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно несколько раз в логах в этот момент 2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88, 2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88, 2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88, 2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88, 2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long header, client: 67.11.37.88, 2015-04-30 14:05 GMT+03:00 Vasil Mikhalenya : > Спасибо, пробуем. > > Однако это не совсем очевидно, что во время валидации cache в tmpdir > начинают появляться файлы на каждый range запрос. > > 2015-04-29 14:18 GMT+03:00 Maxim Dounin : > >> Hello! >> >> On Wed, Apr 29, 2015 at 12:35:22PM +0300, Vasil Mikhalenya wrote: >> >> > Коллеги, подскажите что происходит >> >> [...] >> >> > proxy_cache_path /var/lib/nginx/cache keys_zone=mycdn:20m inactive=1d >> > use_temp_path=off; >> > >> > >> > server { >> > listen 80; >> > server_name mycdn.com 127.0.0.1; >> > >> > proxy_cache mycdn; >> > >> > location / { >> > proxy_pass http://origin; >> > proxy_set_header Host $proxy_host; >> > proxy_cache_lock on; >> > proxy_cache_lock_age 2h; >> > proxy_cache_lock_timeout 2h; >> > proxy_cache_key "$uri"; >> > add_header Cache $upstream_cache_status; >> > } >> > } >> > >> > >> > [root на node ~]# ll /var/lib/nginx/cache/ | wc -l >> > >> > 228 >> > т.е. у nginx в cache есть около 2 сотен популярных файлов (118G >> > /var/lib/nginx/cache/), >> > он успешно отдает несколько дней, ничего нового из origin не качает, в >> > какой то момент случается это >> >> Видимо, это происходит в тот момент, когда ответы в кеше >> expire'ятся. Имеет смысл включить "proxy_cache_use_stale >> updating", см. тут: >> >> http://nginx.org/r/proxy_cache_use_stale/ru >> >> Кроме того, если речь идёт о больших статических файлах - имеет >> смысл также использовать proxy_cache_revalidate, см. тут: >> >> http://nginx.org/r/proxy_cache_revalidate/ru >> >> > [root на node ~]# ll /var/lib/nginx/cache/temp/ | wc -l >> > >> > 5714 >> > >> > Т.е. число файлов в temp растет очень быстро, хотя обычно = 0. >> > >> > restart nginx и очистка tempdir не помогает (файлы в tempdir появляются >> > снова), помогает только полная очистка cache >> >> Потому что proxy_cache_lock используется только при добавлении >> элементов в кеш. Если хочется избежать одновременных обращений на >> бекенд нескольких клиентов при обновлении, то надо включать >> "proxy_cache_use_stale updating", см. выше. >> >> -- >> Maxim Dounin >> http://nginx.org/ >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Best regards, > Vasil Mikhalenya > -- Best regards, Vasil Mikhalenya ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From bazilek на gmail.com Fri Feb 12 16:16:03 2016 From: bazilek на gmail.com (Vasil Mikhalenya) Date: Fri, 12 Feb 2016 19:16:03 +0300 Subject: nginx cache In-Reply-To: References: <2117741.WdtaKZC1TT@vbart-laptop> <20150429111818.GQ32429@mdounin.ru> Message-ID: добавлю что nginx version: nginx/1.9.10 built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) built with OpenSSL 1.0.2f 28 Jan 2016 TLS SNI support enabled configure arguments: --user=nginx --group=nginx --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-openssl=/builddir/build/BUILD/nginx-1.9.10/openssl-1.0.2f --with-openssl-opt=enable-tlsext --with-http_secure_link_module --with-http_random_index_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_geoip_module --with-http_v2_module --with-http_auth_request_module --with-debug --with-file-aio --with-stream --with-stream_ssl_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --add-module=/builddir/build/BUILD/nginx-1.9.10/lua-nginx-module-0.10.0 --add-module=/builddir/build/BUILD/nginx-1.9.10/ngx_devel_kit-0.2.19 --add-module=/builddir/build/BUILD/nginx-1.9.10/nginx_accept_language_module --add-module=/builddir/build/BUILD/nginx-1.9.10/nginx-dav-ext-module --add-module=/builddir/build/BUILD/nginx-1.9.10/ngx_http_redis-0.3.7 --add-module=/builddir/build/BUILD/nginx-1.9.10/echo-nginx-module-0.56 --add-module=/builddir/build/BUILD/nginx-1.9.10/ngx_cache_purge --add-module=/builddir/build/BUILD/nginx-1.9.10/nginx-push-stream-module --add-module=/builddir/build/BUILD/nginx-1.9.10/nginx-module-vts запросы клиентов с range, соответственно ответы 206 2016-02-12 18:38 GMT+03:00 Vasil Mikhalenya : > проблема все еще воспроизводится с таким конфигом, > > location / { > proxy_pass http://origin.example.com; > proxy_set_header Host $proxy_host; > proxy_cache_lock on; > proxy_cache_lock_age 1d; > proxy_cache_lock_timeout 1d; > proxy_cache_revalidate on; > proxy_cache_use_stale updating; > proxy_cache_key "$uri"; > add_header Cache $upstream_cache_status; > add_header X-ID "{{ ansible_hostname }}"; > } > > за пару часов nginx просто съедает >1Tb локального диска, помогает только > остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно > несколько раз > > в логах в этот момент > > 2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > > > 2015-04-30 14:05 GMT+03:00 Vasil Mikhalenya : > >> Спасибо, пробуем. >> >> Однако это не совсем очевидно, что во время валидации cache в tmpdir >> начинают появляться файлы на каждый range запрос. >> >> 2015-04-29 14:18 GMT+03:00 Maxim Dounin : >> >>> Hello! >>> >>> On Wed, Apr 29, 2015 at 12:35:22PM +0300, Vasil Mikhalenya wrote: >>> >>> > Коллеги, подскажите что происходит >>> >>> [...] >>> >>> > proxy_cache_path /var/lib/nginx/cache keys_zone=mycdn:20m inactive=1d >>> > use_temp_path=off; >>> > >>> > >>> > server { >>> > listen 80; >>> > server_name mycdn.com 127.0.0.1; >>> > >>> > proxy_cache mycdn; >>> > >>> > location / { >>> > proxy_pass http://origin; >>> > proxy_set_header Host $proxy_host; >>> > proxy_cache_lock on; >>> > proxy_cache_lock_age 2h; >>> > proxy_cache_lock_timeout 2h; >>> > proxy_cache_key "$uri"; >>> > add_header Cache $upstream_cache_status; >>> > } >>> > } >>> > >>> > >>> > [root на node ~]# ll /var/lib/nginx/cache/ | wc -l >>> > >>> > 228 >>> > т.е. у nginx в cache есть около 2 сотен популярных файлов (118G >>> > /var/lib/nginx/cache/), >>> > он успешно отдает несколько дней, ничего нового из origin не качает, в >>> > какой то момент случается это >>> >>> Видимо, это происходит в тот момент, когда ответы в кеше >>> expire'ятся. Имеет смысл включить "proxy_cache_use_stale >>> updating", см. тут: >>> >>> http://nginx.org/r/proxy_cache_use_stale/ru >>> >>> Кроме того, если речь идёт о больших статических файлах - имеет >>> смысл также использовать proxy_cache_revalidate, см. тут: >>> >>> http://nginx.org/r/proxy_cache_revalidate/ru >>> >>> > [root на node ~]# ll /var/lib/nginx/cache/temp/ | wc -l >>> > >>> > 5714 >>> > >>> > Т.е. число файлов в temp растет очень быстро, хотя обычно = 0. >>> > >>> > restart nginx и очистка tempdir не помогает (файлы в tempdir появляются >>> > снова), помогает только полная очистка cache >>> >>> Потому что proxy_cache_lock используется только при добавлении >>> элементов в кеш. Если хочется избежать одновременных обращений на >>> бекенд нескольких клиентов при обновлении, то надо включать >>> "proxy_cache_use_stale updating", см. выше. >>> >>> -- >>> Maxim Dounin >>> http://nginx.org/ >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> Best regards, >> Vasil Mikhalenya >> > > > > -- > Best regards, > Vasil Mikhalenya > -- Best regards, Vasil Mikhalenya ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Sat Feb 13 02:16:25 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 13 Feb 2016 05:16:25 +0300 Subject: nginx cache In-Reply-To: References: <2117741.WdtaKZC1TT@vbart-laptop> <20150429111818.GQ32429@mdounin.ru> Message-ID: <20160213021624.GP70672@mdounin.ru> Hello! On Fri, Feb 12, 2016 at 06:38:08PM +0300, Vasil Mikhalenya wrote: > проблема все еще воспроизводится с таким конфигом, > > location / { > proxy_pass http://origin.example.com; > proxy_set_header Host $proxy_host; > proxy_cache_lock on; > proxy_cache_lock_age 1d; > proxy_cache_lock_timeout 1d; > proxy_cache_revalidate on; > proxy_cache_use_stale updating; > proxy_cache_key "$uri"; > add_header Cache $upstream_cache_status; > add_header X-ID "{{ ansible_hostname }}"; > } > > за пару часов nginx просто съедает >1Tb локального диска, помогает только > остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно > несколько раз > > в логах в этот момент > > 2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, > 2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > header, client: 67.11.37.88, Судя по логам, у вас в кеше откуда-то взялся мусор. От этого перестаёт работать "proxy_cache_use_stale updating" (потому что отдавать - нечего), и proxy_cache_lock тоже не работает (потому что ресурс не новый, и соответственно обработка другая). В результате имеем то, что имеем - множество запросов идут одновременно на бекенд. Разбирайтесь, откуда у вас в кеше то, что там лежит. Варианты на вскидку: - кто-то положил туда ответ с большим заголовком через другой location, использовав большой proxy_buffer_size; - файловая система приказала долго жить. -- Maxim Dounin http://nginx.org/ From bazilek на gmail.com Sun Feb 14 11:33:50 2016 From: bazilek на gmail.com (Vasil Mikhalenya) Date: Sun, 14 Feb 2016 14:33:50 +0300 Subject: nginx cache In-Reply-To: <20160213021624.GP70672@mdounin.ru> References: <2117741.WdtaKZC1TT@vbart-laptop> <20150429111818.GQ32429@mdounin.ru> <20160213021624.GP70672@mdounin.ru> Message-ID: следующий раз проверю, удалив файл из кеша - для каждого proxy_cache_path по одному локейшену, кроме nginx никто с ним ничего не делает - т.к. воспроизводится на разных серверах, склонен считать, что проблема не в fs 2016-02-13 5:16 GMT+03:00 Maxim Dounin : > Hello! > > On Fri, Feb 12, 2016 at 06:38:08PM +0300, Vasil Mikhalenya wrote: > > > проблема все еще воспроизводится с таким конфигом, > > > > location / { > > proxy_pass http://origin.example.com; > > proxy_set_header Host $proxy_host; > > proxy_cache_lock on; > > proxy_cache_lock_age 1d; > > proxy_cache_lock_timeout 1d; > > proxy_cache_revalidate on; > > proxy_cache_use_stale updating; > > proxy_cache_key "$uri"; > > add_header Cache $upstream_cache_status; > > add_header X-ID "{{ ansible_hostname }}"; > > } > > > > за пару часов nginx просто съедает >1Tb локального диска, помогает только > > остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно > > несколько раз > > > > в логах в этот момент > > > > 2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file > > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > > header, client: 67.11.37.88, > > 2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file > > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > > header, client: 67.11.37.88, > > 2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file > > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > > header, client: 67.11.37.88, > > 2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file > > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > > header, client: 67.11.37.88, > > 2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file > > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long > > header, client: 67.11.37.88, > > Судя по логам, у вас в кеше откуда-то взялся мусор. От этого > перестаёт работать "proxy_cache_use_stale updating" (потому что > отдавать - нечего), и proxy_cache_lock тоже не работает (потому > что ресурс не новый, и соответственно обработка другая). В > результате имеем то, что имеем - множество запросов идут > одновременно на бекенд. > > Разбирайтесь, откуда у вас в кеше то, что там лежит. Варианты на > вскидку: > > - кто-то положил туда ответ с большим заголовком через другой > location, использовав большой proxy_buffer_size; > > - файловая система приказала долго жить. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Vasil Mikhalenya ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From public-mail на alekciy.ru Mon Feb 15 07:46:02 2016 From: public-mail на alekciy.ru (=?UTF-8?B?0JDQu9C10LrRgdC10Lkg0KHRg9C90LTRg9C60L7Qsg==?=) Date: Mon, 15 Feb 2016 11:46:02 +0400 Subject: nginx-1.9.11 In-Reply-To: <20160209142958.GH70672@mdounin.ru> References: <20160209142958.GH70672@mdounin.ru> Message-ID: >*) Добавление: динамические модули. Помниться тема "а когда в nginx появятся модули как в apache" поднималась не один раз. И не раз ответ был, что такого не будет, не нужно делать из nginx apache. В связи с чем вопрос, это политика партии изменилась (под давление общественности?) или же это какие-то другие модули? Или просто добавили такую возможность, кому нужно, тот будет использовать, но при этом пусть сам на себя же и пинает? -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Mon Feb 15 12:29:22 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 15 Feb 2016 15:29:22 +0300 Subject: nginx-1.9.11 In-Reply-To: References: <20160209142958.GH70672@mdounin.ru> Message-ID: <56C1C4A2.8060704@nginx.com> On 2/15/16 10:46 AM, Алексей Сундуков wrote: >>*) Добавление: динамические модули. > > Помниться тема "а когда в nginx появятся модули как в apache" > поднималась не один раз. И не раз ответ был, что такого не будет, не > нужно делать из nginx apache. В связи с чем вопрос, это политика > партии изменилась (под давление общественности?) или же это какие-то > другие модули? Или просто добавили такую возможность, кому нужно, > тот будет использовать, но при этом пусть сам на себя же и пинает? > А каким образом динамические модули превращают nginx в apache (это, видимо, что-то плохое)? Мне кажется, это утверждение довольно сомнительно само по себе. -- Maxim Konovalov From mdounin на mdounin.ru Mon Feb 15 13:02:03 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 15 Feb 2016 16:02:03 +0300 Subject: nginx-1.9.11 In-Reply-To: References: <20160209142958.GH70672@mdounin.ru> Message-ID: <20160215130203.GC34421@mdounin.ru> Hello! On Mon, Feb 15, 2016 at 11:46:02AM +0400, Алексей Сундуков wrote: > >*) Добавление: динамические модули. > > Помниться тема "а когда в nginx появятся модули как в apache" поднималась > не один раз. И не раз ответ был, что такого не будет, не нужно делать из > nginx apache. В связи с чем вопрос, это политика партии изменилась (под > давление общественности?) или же это какие-то другие модули? Или просто > добавили такую возможность, кому нужно, тот будет использовать, но при этом > пусть сам на себя же и пинает? Основное возражение против динамической загрузки модулей состояло в том, что плюсов мало, и в то же время вероятны проблемы при несовпадении представлений nginx'а и модулей о содержимом структур данных, а равно при конфликтах библиотек. Окружающая нас реальность, однако, такова, что всё больше задач требует отдельной сборки модулей. В частности, такие задачи регулярно возникают в рамках платной версии nginx, а равно в рамках нашего репозитория с linux-пакетами. Не говоря уже про регулярно возникающую необходимость просить пользователей при отладке каких-либо проблем собрать nginx без сторонних модулей. Так что было решено потратить время на решение тех проблем, которые мы можем решить, и сделать динамическую загрузку модулей возможной. Это не означает, что следует бросаться делать динамической загрузку всех модулей. Проблем с динамически загружаемыми модулями будет скорее всего больше, чем с ними же, вкомпилированными статически. И если есть возможность собрать nginx сразу с нужными модулями - это и стоит делать. Но и о "пенять на себя" речи не идёт. Динамическая загрузка модулей - полноценная функция, которую мы планируем использовать в том числе и сами. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Tue Feb 16 19:00:33 2016 From: nginx-forum на forum.nginx.org (iprok) Date: Tue, 16 Feb 2016 14:00:33 -0500 Subject: =?UTF-8?Q?zero_size_buf_in_output_=D0=BF=D1=80=D0=B8_proxy_cache?= Message-ID: Здравствуйте! На видеостриминговой системе используем два уровня проксей (эджи и ориджины). Эджи проксируют клиентов на ориджины, ориджины проксируют эджи на сервера-источники видео. Видео отдается в формате HLS: это плейлисты (текстовые файлы) и чанки видео (видео-файлы в формате ts). В локейшенах, проксирующих чанки, на ориджинах и эджах регулярно, хоть и относительно не часто (пара десятков за сутки), проскакивают ошибки "zero size buf in output". Мне кажется причиной является одна из директив: proxy_cache_use_stale updating; proxy_cache_lock on; так как до их появления таких ошибок не было. nginx в основном 1.8.1, но проявиляется так же и на 1.9.11, логи ниже делал на последней. Используем пакеты для debian8 из репозитория на nginx.org. Если смотреть access.log, то чанк в помент проявления этой ошибки отдается частично, но с кодом 200 (размер в логе меньше реального размера), при следующем запросе отдается нормально, и ошибка не проявляется. Лог кратко (debug.log внизу, здесь и далее в логах вырезана приватная информация, так как ошибка вопроизводится только в продакшене): 2016/02/14 11:09:20 [alert] 30161#30161: *1388932 zero size buf in output t:0 r:0 f:0 0000000002387520 0000000002387520-0000000002389356 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: e6.mysite.com, request: "GET /place1/stream/cam13_low-5743015560.ts HTTP/1.1", upstream: "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host: "e6.mysite.com", referrer: "https://mysite.com/" 2016/02/14 11:09:23 [alert] 30160#30160: *1389653 zero size buf in output t:0 r:0 f:0 00000000022BBC50 00000000022BBC50-00000000022BF185 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts HTTP/1.1", upstream: "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host: "e6.mysite.com", referrer: "https://mysite.com/" Конфиги: nginx.conf: user www-data; worker_processes 8; worker_rlimit_nofile 65536; pid /run/nginx.pid; events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; log_format csv_times $remote_addr|$remote_user|$time_local|$request|$status|$body_bytes_sent|$http_referer|$http_user_agent|$request_time; gzip on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } ---- conf.d/upstream.conf: upstream o-mysite-place2 { server HIDDENIPV4:443 fail_timeout=60 max_fails=3 weight=3; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 weight=3; server HIDDENIPV4:443 fail_timeout=60 max_fails=3 weight=1; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 weight=1; server HIDDENIPV4:443 fail_timeout=60 max_fails=3 backup; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 backup; keepalive 500; } upstream o-mysite-place1 { server HIDDENIPV4:443 fail_timeout=60 max_fails=3 weight=3; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 weight=3; server HIDDENIPV4:443 fail_timeout=60 max_fails=3 weight=1; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 weight=1; server HIDDENIPV4:443 fail_timeout=60 max_fails=3 backup; server [HIDDENIPV6]:443 fail_timeout=60 max_fails=3 backup; keepalive 500; } ---- sites-enabled/e6.mysite.com.conf: proxy_cache_path /var/cache/nginx/mysite_edge_video keys_zone=m_e_v:3m inactive=3m max_size=1g; proxy_cache_path /var/cache/nginx/mysite_www_static keys_zone=m_w_s:3m max_size=1g; fastcgi_cache_path /var/cache/nginx/mysite_fastcgi keys_zone=m_s:3m max_size=100m; log_format req_times $time_local|$request|$request_time; limit_req_zone $limit_head zone=limit_head:1m rate=1r/s; limit_conn_zone $binary_remote_addr zone=dynamic:10m; #https server { listen HIDDENIPV4:443 ssl; listen [HIDDENIPV6]:443 ssl; server_name e6.mysite.com mysite.com; access_log /var/log/nginx/mysite.edge.access.log csv_times; error_log /var/log/nginx/mysite.edge.error.log; ssl_certificate /etc/ssl/mysite.com.pem; ssl_certificate_key /etc/ssl/private/mysite.com.key; include ssl_params.conf; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/ssl/startssl.class2.pem; resolver HIDDENIPV4; add_header X-Content-Options nosniff; add_header X-Frame-Options SAMEORIGIN; add_header Strict-Transport-Security "max-age=31536000;"; proxy_next_upstream error timeout invalid_header http_500 http_502 http_504; proxy_http_version 1.1; proxy_ssl_server_name on; proxy_ssl_verify on; proxy_ssl_trusted_certificate /etc/ssl/startssl.class2.pem; proxy_ssl_verify_depth 2; location /place1/stream { #чанки proxy_ssl_name origin.mysite.com; include proxy_headers.inc; proxy_set_header host origin.mysite.com; proxy_buffer_size 16k; proxy_buffers 32 16k; proxy_cache m_e_v; proxy_cache_valid any 1m; proxy_cache_use_stale updating; proxy_cache_key "$uri$is_args$args"; proxy_cache_lock on; proxy_pass https://o-mysite-place1/place1/video; access_log /var/log/nginx/mysite.edge.access.log csv_times; access_log /var/log/nginx/mysite.edge.chunk-times.log req_times; # error_log /var/log/nginx/debug.log debug; error_log /var/log/nginx/mysite.edge.error.log; } location /place2/stream { #чанки proxy_ssl_name origin.mysite.com; include proxy_headers.inc; proxy_set_header host origin.mysite.com; proxy_buffer_size 16k; proxy_buffers 32 16k; proxy_cache m_e_v; proxy_cache_valid any 1m; proxy_cache_use_stale updating; proxy_cache_key "$uri$is_args$args"; proxy_cache_lock on; proxy_pass https://o-mysite-place2/place2/video; access_log /var/log/nginx/mysite.edge.access.log csv_times; access_log /var/log/nginx/mysite.edge.chunk-times.log req_times; # error_log /var/log/nginx/debug.log debug; error_log /var/log/nginx/mysite.edge.error.log; } } ---- proxy_headers.conf: proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Connection ""; ---- Сразу выкладываю debug.log (18 мегабайт в распакованном виде): https://kinetiksoft.com/thecloud/index.php/s/5ldvsZFiC2NjpXJ Я обрезал только 10 секунд, за которые произошли две ошибки из краткого лога в начале сообщения. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264561,264561#msg-264561 From mdounin на mdounin.ru Tue Feb 16 20:04:57 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 16 Feb 2016 23:04:57 +0300 Subject: =?UTF-8?Q?Re=3A_zero_size_buf_in_output_=D0=BF=D1=80=D0=B8_proxy_cache?= In-Reply-To: References: Message-ID: <20160216200457.GV34421@mdounin.ru> Hello! On Tue, Feb 16, 2016 at 02:00:33PM -0500, iprok wrote: > Здравствуйте! > > На видеостриминговой системе используем два уровня проксей (эджи и > ориджины). Эджи проксируют клиентов на ориджины, ориджины проксируют эджи на > сервера-источники видео. Видео отдается в формате HLS: это плейлисты > (текстовые файлы) и чанки видео (видео-файлы в формате ts). > > В локейшенах, проксирующих чанки, на ориджинах и эджах регулярно, хоть и > относительно не часто (пара десятков за сутки), проскакивают ошибки "zero > size buf in output". Мне кажется причиной является одна из директив: > proxy_cache_use_stale updating; > proxy_cache_lock on; > так как до их появления таких ошибок не было. > > nginx в основном 1.8.1, но проявиляется так же и на 1.9.11, логи ниже делал > на последней. Используем пакеты для debian8 из репозитория на nginx.org. > > Если смотреть access.log, то чанк в помент проявления этой ошибки отдается > частично, но с кодом 200 (размер в логе меньше реального размера), при > следующем запросе отдается нормально, и ошибка не проявляется. > > Лог кратко (debug.log внизу, здесь и далее в логах вырезана приватная > информация, так как ошибка вопроизводится только в продакшене): > > 2016/02/14 11:09:20 [alert] 30161#30161: *1388932 zero size buf in output > t:0 r:0 f:0 0000000002387520 0000000002387520-0000000002389356 > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: > e6.mysite.com, request: "GET /place1/stream/cam13_low-5743015560.ts > HTTP/1.1", upstream: > "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host: > "e6.mysite.com", referrer: "https://mysite.com/" > 2016/02/14 11:09:23 [alert] 30160#30160: *1389653 zero size buf in output > t:0 r:0 f:0 00000000022BBC50 00000000022BBC50-00000000022BF185 > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: > e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts > HTTP/1.1", upstream: > "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host: > "e6.mysite.com", referrer: "https://mysite.com/" [...] > Сразу выкладываю debug.log (18 мегабайт в распакованном виде): > https://kinetiksoft.com/thecloud/index.php/s/5ldvsZFiC2NjpXJ > Я обрезал только 10 секунд, за которые произошли две ошибки из краткого лога > в начале сообщения. Судя по логам, проблема возникает тогда, когда клиент закрывает соединение до получения ответа целиком. В обоих случаях перед alert'ом про "zero size buf" в логах видно такое: 2016/02/14 11:09:20 [info] 30161#30161: *1388932 epoll_wait() reported that client prematurely closed connection (32: Broken pipe) while reading upstream, client: HIDDENIPV4, server: e6.mysite.com, request: "GET /place1/stream/cam13_low-5743015560.ts HTTP/1.1", upstream: "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host: "e6.mysite.com", referrer: "https://mysite.com/" 2016/02/14 11:09:23 [info] 30160#30160: *1389653 epoll_wait() reported that client prematurely closed connection while reading upstream, client: HIDDENIPV4, server: e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts HTTP/1.1", upstream: "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host: "e6.mysite.com", referrer: "https://mysite.com/" В этом случае nginx продолжает загружать файл с бекенда в кеш, а после окончания загрузки - пытается отправить последний буфер. И, видимо, где-то вместе с этим буфером проталкивает в цепочке фильтров что-то, что ранее счёл свободным (из-за ошибки записи клиенту), но по факту оно застряло где-то в цепочке фильтров. Что именно там происходит и как это поправить - надо смотреть подробнее. Для начала было бы неплохо убедиться, что сторонних модулей не используется, а если используются - то проверить, воспроизводится ли проблема без них. Кроме того, хотелось бы увидеть вывод "nginx -V". (Отмечу также, что в целом ошибка выглядит безвредно - собственно, логгируемая ошибка и есть основной его эффект. В остальном всё работает штатно.) -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Tue Feb 16 20:19:18 2016 From: nginx-forum на forum.nginx.org (iprok) Date: Tue, 16 Feb 2016 15:19:18 -0500 Subject: =?UTF-8?Q?Re=3A_zero_size_buf_in_output_=D0=BF=D1=80=D0=B8_proxy_cache?= In-Reply-To: <20160216200457.GV34421@mdounin.ru> References: <20160216200457.GV34421@mdounin.ru> Message-ID: В письме от 16 февраля 2016 23:04:57 пользователь Maxim Dounin написал: > > Что именно там происходит и как это поправить - надо смотреть > подробнее. Для начала было бы неплохо убедиться, что сторонних > модулей не используется, а если используются - то проверить, > воспроизводится ли проблема без них. Как я уже говорил используются только debian-пакеты из репозиториев на nginx.org. Для дебаг-режима я использовал их же, просто пересобрал пакет, добавив --with-debug в конфигурационные скрипты. > Кроме того, хотелось бы > увидеть вывод "nginx -V". Тестовая с дебаг-режимом: # nginx -V nginx version: nginx/1.9.11 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro --with-ipv6 --with-debug Основная: nginx version: nginx/1.8.1 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 > > (Отмечу также, что в целом ошибка выглядит безвредно - собственно, > логгируемая ошибка и есть основной его эффект. В остальном всё > работает штатно.) В принципе я знал это по архивам данной конференции. Просто дело в том, что меня инстинктивно смущает ошибка со статусом alert в логах на продакшене и не выключишь ее никак, не выключая остальные логи. Да и системы мониторинга от нее сходят с ума :( Спасибо Вам за попытки помочь! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264561,264564#msg-264564 From nginx-forum на forum.nginx.org Wed Feb 17 13:33:48 2016 From: nginx-forum на forum.nginx.org (ingtar) Date: Wed, 17 Feb 2016 08:33:48 -0500 Subject: =?UTF-8?B?0J7QsdC90L7QstC70LXQvdC40LUg0LHQuNC90LDRgNC90LjQutCwINC4INC60Y0=?= =?UTF-8?B?0Yg=?= Message-ID: <1704842f1919cbcf1b52393a84fe7fb8.NginxMailingListRussian@forum.nginx.org> Доброго дня! Имеется сервис nginx, который кэширует картинки для отдачи пользователям. Большие обьемы в несколько десятков GB. При рестарте службы он начинает переиндексировать свой кеш и работа тормозится. При обновлении бинарника по шагам http://nginx.org/ru/docs/control.html#upgrade кэш будет так же перестраиваться или он получит доступ к уже имеющимся данным? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264570,264570#msg-264570 From mdounin на mdounin.ru Wed Feb 17 14:35:09 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 17 Feb 2016 17:35:09 +0300 Subject: =?UTF-8?B?UmU6INCe0LHQvdC+0LLQu9C10L3QuNC1INCx0LjQvdCw0YDQvdC40LrQsCDQuCA=?= =?UTF-8?B?0LrRjdGI?= In-Reply-To: <1704842f1919cbcf1b52393a84fe7fb8.NginxMailingListRussian@forum.nginx.org> References: <1704842f1919cbcf1b52393a84fe7fb8.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160217143509.GZ34421@mdounin.ru> Hello! On Wed, Feb 17, 2016 at 08:33:48AM -0500, ingtar wrote: > Доброго дня! > Имеется сервис nginx, который кэширует картинки для отдачи пользователям. > Большие обьемы в несколько десятков GB. > При рестарте службы он начинает переиндексировать свой кеш и работа > тормозится. > При обновлении бинарника по шагам > http://nginx.org/ru/docs/control.html#upgrade кэш будет так же > перестраиваться или он получит доступ к уже имеющимся данным? Да, при обновлении исполняемого файла все данные в разделяемой памяти теряются, и содержимое кеша загружается заново. Если загрузка вызывает заметные проблемы с производительностью - можно попробовать поиграться с параметрами загрузки, см. параметры loader_files, loader_threshold, loader_sleep директивы proxy_cache_path: http://nginx.org/r/proxy_cache_path/ru -- Maxim Dounin http://nginx.org/ From postmaster на softsearch.ru Thu Feb 18 07:23:47 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Thu, 18 Feb 2016 10:23:47 +0300 Subject: =?UTF-8?B?UmU6INCe0LHQvdC+0LLQu9C10L3QuNC1INCx0LjQvdCw0YDQvdC40LrQsCDQuCA=?= =?UTF-8?B?0LrRjdGI?= In-Reply-To: <1704842f1919cbcf1b52393a84fe7fb8.NginxMailingListRussian@forum.nginx.org> References: <1704842f1919cbcf1b52393a84fe7fb8.NginxMailingListRussian@forum.nginx.org> Message-ID: <239890405.20160218102347@softsearch.ru> Здравствуйте, ingtar. > Имеется сервис nginx, который кэширует картинки для отдачи пользователям. > Большие обьемы в несколько десятков GB. > При рестарте службы он начинает переиндексировать свой кеш и работа > тормозится. > При обновлении бинарника по шагам > http://nginx.org/ru/docs/control.html#upgrade кэш будет так же > перестраиваться или он получит доступ к уже имеющимся данным? Иногда в новых версиях меняется формат данных, хранящихся в кэше. Тогда кэш фактически полностью теряется. -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на forum.nginx.org Thu Feb 18 10:16:03 2016 From: nginx-forum на forum.nginx.org (ingtar) Date: Thu, 18 Feb 2016 05:16:03 -0500 Subject: =?UTF-8?B?UmU6INCe0LHQvdC+0LLQu9C10L3QuNC1INCx0LjQvdCw0YDQvdC40LrQsCDQuCA=?= =?UTF-8?B?0LrRjdGI?= In-Reply-To: <239890405.20160218102347@softsearch.ru> References: <239890405.20160218102347@softsearch.ru> Message-ID: Спасибо большое за ответы. Вы супер! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264570,264584#msg-264584 From nginx-forum на forum.nginx.org Thu Feb 18 10:35:32 2016 From: nginx-forum на forum.nginx.org (tetramin) Date: Thu, 18 Feb 2016 05:35:32 -0500 Subject: =?UTF-8?B?0JPQtNC1INC00LjRgNC10LrRgtC40LLQsCBpbmNsdWRlINC40YnQtdGCINGE0LA=?= =?UTF-8?B?0LnQu9GLPw==?= Message-ID: <72aabf900540837835ee1cff2d245055.NginxMailingListRussian@forum.nginx.org> Добрый день. Разъясните, пожалуйста, где include ищет файлы? Относительно каталога nginx? А можно ли, не указывая полный путь, подключить файл из того же каталога, где лежит конфиг виртуального хоста? Допустим, конфиг виртуалхоста в sites-available/sitename/virtualhost.conf А рядом с ним лежит файл, который хочу подключить: sites-available/sitename/params.conf Могу я в virtualhost.conf указать: include ./params.conf ? Заранее благодарю. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264586,264586#msg-264586 From a.vasilishin на kpi.ua Thu Feb 18 11:00:39 2016 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Thu, 18 Feb 2016 13:00:39 +0200 Subject: =?UTF-8?B?dHJ5X2ZpbGVzINC4INGA0LXQs9C40YHRgtGA?= Message-ID: <56C5A457.4040304@kpi.ua> Всем привет! Как сделать так, чтобы try_files искал файл без учета регистра. Есть часть расширение у файлов в верхнем регистре, часть в нижнем, ссылки все в нижнем регистре. From ru на nginx.com Thu Feb 18 11:09:48 2016 From: ru на nginx.com (Ruslan Ermilov) Date: Thu, 18 Feb 2016 14:09:48 +0300 Subject: =?UTF-8?B?UmU6INCT0LTQtSDQtNC40YDQtdC60YLQuNCy0LAgaW5jbHVkZSDQuNGJ0LXRgiA=?= =?UTF-8?B?0YTQsNC50LvRiz8=?= In-Reply-To: <72aabf900540837835ee1cff2d245055.NginxMailingListRussian@forum.nginx.org> References: <72aabf900540837835ee1cff2d245055.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160218110948.GC69767@lo0.su> On Thu, Feb 18, 2016 at 05:35:32AM -0500, tetramin wrote: > Добрый день. > > Разъясните, пожалуйста, где include ищет файлы? Относительно каталога nginx? > А можно ли, не указывая полный путь, подключить файл из того же каталога, > где лежит конфиг виртуального хоста? Относительно каталога основного конфигурационного файла nginx. > Допустим, конфиг виртуалхоста в sites-available/sitename/virtualhost.conf > А рядом с ним лежит файл, который хочу подключить: > sites-available/sitename/params.conf > > Могу я в virtualhost.conf указать: > include ./params.conf > ? > > Заранее благодарю. From voron на amhost.net Thu Feb 18 15:48:26 2016 From: voron на amhost.net (Alex Vorona) Date: Thu, 18 Feb 2016 17:48:26 +0200 Subject: =?UTF-8?B?UmU6IHRyeV9maWxlcyDQuCDRgNC10LPQuNGB0YLRgA==?= In-Reply-To: <56C5A457.4040304@kpi.ua> References: <56C5A457.4040304@kpi.ua> Message-ID: <56C5E7CA.4090802@amhost.net> 18.02.16 13:00, Андрей Василишин пишет: > Всем привет! > Как сделать так, чтобы try_files искал файл без учета регистра. Есть > часть расширение у файлов в верхнем регистре, часть в нижнем, ссылки все > в нижнем регистре. Для известного расширения можно попробовать regex capturing location на имя файла без расширения и try_files с результатом capturing и нужными вариантами расширения. From a.vasilishin на kpi.ua Thu Feb 18 19:04:24 2016 From: a.vasilishin на kpi.ua (=?UTF-8?B?0JDQvdC00YDQtdC5INCS0LDRgdC40LvQuNGI0LjQvQ==?=) Date: Thu, 18 Feb 2016 21:04:24 +0200 Subject: =?UTF-8?B?UmU6IHRyeV9maWxlcyDQuCDRgNC10LPQuNGB0YLRgA==?= In-Reply-To: <56C5E7CA.4090802@amhost.net> References: <56C5A457.4040304@kpi.ua> <56C5E7CA.4090802@amhost.net> Message-ID: <56C615B8.5000306@kpi.ua> 18.02.2016 17:48, Alex Vorona пишет: > 18.02.16 13:00, Андрей Василишин пишет: >> Всем привет! >> Как сделать так, чтобы try_files искал файл без учета регистра. Есть >> часть расширений у файлов в верхнем регистре, часть в нижнем, ссылки все >> в нижнем регистре. > Для известного расширения можно попробовать regex capturing location на > имя файла без расширения и try_files с результатом capturing и нужными > вариантами расширения. > пока ограничился переименованием всех файлов в нижний регистр find /path/to/files -type f -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; Но а вообще странно, для location есть ~*, а для try_files - нет From nginx-forum на forum.nginx.org Fri Feb 19 03:55:59 2016 From: nginx-forum на forum.nginx.org (tetramin) Date: Thu, 18 Feb 2016 22:55:59 -0500 Subject: =?UTF-8?B?UmU6INCT0LTQtSDQtNC40YDQtdC60YLQuNCy0LAgaW5jbHVkZSDQuNGJ0LXRgiA=?= =?UTF-8?B?0YTQsNC50LvRiz8=?= In-Reply-To: <20160218110948.GC69767@lo0.su> References: <20160218110948.GC69767@lo0.su> Message-ID: <329bed021bc96963ab9990a7723778d6.NginxMailingListRussian@forum.nginx.org> Руслан, благодарю! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264586,264608#msg-264608 From nginx-forum на forum.nginx.org Fri Feb 19 08:49:41 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Fri, 19 Feb 2016 03:49:41 -0500 Subject: =?UTF-8?B?0J/QuNGB0LDRgtGMINCyINC70L7QsyDQtNC+0YHRgtGD0L8g0Log0L7Qv9GA0LU=?= =?UTF-8?B?0LTQtdC70LXQvdC90YvQvCDRgdGB0YvQu9C60LDQvA==?= Message-ID: Привет Есть такие логи, 54. - - [19/Feb/2016:06:16:25 +0000] "GET /mail_confirm/e87bde4d9bc9b4d84abe677a91c299e0351c462ae2367361f31df3978cf0f71992749f59d580fadf46eb13df54292ee711b9caaf39ad8b919bc65e399dc13b3e HTTP/1.1" 200 1997 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" "54.179.1" 37.1. - - [19/Feb/2016:06:16:40 +0000] "GET /profile HTTP/1.1" 200 2304 "https://mail.domain.ru/confirm_name/876b76f1fcd60f9bbeb20348ab98837baf8b566dc49b202eb9ab49686e27e724" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" "37.1" охото их писать в отдельный лог, подскажите как лучше это сделать ? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264614#msg-264614 From vadim.lazovskiy на gmail.com Fri Feb 19 09:27:13 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Fri, 19 Feb 2016 12:27:13 +0300 Subject: =?UTF-8?B?UmU6IHRyeV9maWxlcyDQuCDRgNC10LPQuNGB0YLRgA==?= In-Reply-To: <56C615B8.5000306@kpi.ua> References: <56C5A457.4040304@kpi.ua> <56C5E7CA.4090802@amhost.net> <56C615B8.5000306@kpi.ua> Message-ID: Здравствуйте. Насколько мне известно, try_files проверяет наличие файла простым открытием. Обеспечить нечувствительность к регистру в таком случае невозможно. Нужно читать каталог с данным файлом и приводить все элементы к одному регистру, а затем выполнять поиск. Но это уже совсем другая история. 18 февраля 2016 г., 22:04 пользователь Андрей Василишин написал: > 18.02.2016 17:48, Alex Vorona пишет: > >> 18.02.16 13:00, Андрей Василишин пишет: >> >>> Всем привет! >>> Как сделать так, чтобы try_files искал файл без учета регистра. Есть >>> часть расширений у файлов в верхнем регистре, часть в нижнем, ссылки все >>> в нижнем регистре. >>> >> Для известного расширения можно попробовать regex capturing location на >> имя файла без расширения и try_files с результатом capturing и нужными >> вариантами расширения. >> >> > > пока ограничился переименованием всех файлов в нижний регистр > find /path/to/files -type f -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; > > > Но а вообще странно, для location есть ~*, а для try_files - нет > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From chipitsine на gmail.com Fri Feb 19 09:45:03 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Fri, 19 Feb 2016 14:45:03 +0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: map и ключевое слово "if" директивы access_log 2016-02-19 13:49 GMT+05:00 IvanMiller : > Привет > Есть такие логи, > 54. - - [19/Feb/2016:06:16:25 +0000] "GET > > /mail_confirm/e87bde4d9bc9b4d84abe677a91c299e0351c462ae2367361f31df3978cf0f71992749f59d580fadf46eb13df54292ee711b9caaf39ad8b919bc65e399dc13b3e > HTTP/1.1" 200 1997 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" > "54.179.1" > > > 37.1. - - [19/Feb/2016:06:16:40 +0000] "GET /profile HTTP/1.1" 200 2304 > " > https://mail.domain.ru/confirm_name/876b76f1fcd60f9bbeb20348ab98837baf8b566dc49b202eb9ab49686e27e724 > " > "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) > Chrome/44.0.2403.157 Safari/537.36" "37.1" > > > охото их писать в отдельный лог, подскажите как лучше это сделать ? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264614#msg-264614 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Feb 19 11:46:29 2016 From: nginx-forum на forum.nginx.org (sirakuzi) Date: Fri, 19 Feb 2016 06:46:29 -0500 Subject: =?UTF-8?B?0J/RgNC+0LrRgdC40YDQvtCy0LDQvdC40LUg0L/QviDQt9Cw0YDQsNC90LXQtSA=?= =?UTF-8?B?0L3QtSDQt9Cw0LTQsNC90L3Ri9C8INGB0YHRi9C70LrQsNC8?= Message-ID: Добрый день, Большого опыта общения с Nginx не имею, но потребовалось написать Nginx модуль который должен иметь возможность проксировать входящий запрос на заранее не определенные места (к примеру url куда производить проксирование будут браться из запроса к другому веб-сервису или из БД, запросы к которым будут происходить в модуле). Пока придумал структуру через задание переменной и изменения ее значения в зависимости от приходящего url, а затем передачи управления прокси модулю на эту переменную: proxy_pass $variable_name Как вы оцениваете такую реализацию? Жизнеспособна либо она при нагрузке? Может есть более правильные решения такого вопроса? Так же есть вопрос про обращениям к сторонним вебсервисам в теле модуля, лучше использовать связку subrequest+proxy_pass или же вполне можно воспользоваться сторонней библиотекой, к примеру libcurl? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264622,264622#msg-264622 From me на kemko.ru Fri Feb 19 11:49:23 2016 From: me на kemko.ru (=?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JDQvdC00YDQtdC10LI=?=) Date: Fri, 19 Feb 2016 11:49:23 +0000 Subject: =?UTF-8?B?UmU6INCf0YDQvtC60YHQuNGA0L7QstCw0L3QuNC1INC/0L4g0LfQsNGA0LDQvdC1?= =?UTF-8?B?0LUg0L3QtSDQt9Cw0LTQsNC90L3Ri9C8INGB0YHRi9C70LrQsNC8?= In-Reply-To: References: Message-ID: А разве не https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/ ? пт, 19 февр. 2016 г. в 14:46, sirakuzi : > Добрый день, > > Большого опыта общения с Nginx не имею, но потребовалось написать Nginx > модуль который должен иметь возможность проксировать входящий запрос на > заранее не определенные места (к примеру url куда производить проксирование > будут браться из запроса к другому веб-сервису или из БД, запросы к которым > будут происходить в модуле). > Пока придумал структуру через задание переменной и изменения ее значения в > зависимости от приходящего url, а затем передачи управления прокси модулю > на > эту переменную: > proxy_pass $variable_name > Как вы оцениваете такую реализацию? Жизнеспособна либо она при нагрузке? > Может есть более правильные решения такого вопроса? > > Так же есть вопрос про обращениям к сторонним вебсервисам в теле модуля, > лучше использовать связку subrequest+proxy_pass или же вполне можно > воспользоваться сторонней библиотекой, к примеру libcurl? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264622,264622#msg-264622 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Fri Feb 19 12:14:52 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Fri, 19 Feb 2016 15:14:52 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtC60YHQuNGA0L7QstCw0L3QuNC1INC/0L4g0LfQsNGA0LDQvdC1?= =?UTF-8?B?0LUg0L3QtSDQt9Cw0LTQsNC90L3Ri9C8INGB0YHRi9C70LrQsNC8?= In-Reply-To: References: Message-ID: Здравствуйте. Модули не нужны. location / { auth_request /router; auth_request_set $proxy_uri $upstream_http_x_uri; proxy_pass http://your_hostname$proxy_uri; ... } location = /router { proxy_pass http://your_router_backend; proxy_set_header X-Original-URI $request_uri; } Роутер должен анализировать X-Original-URI и выдавать заголовок X-Proxy-URI. Как-то так. 19 февраля 2016 г., 14:46 пользователь sirakuzi написал: > Добрый день, > > Большого опыта общения с Nginx не имею, но потребовалось написать Nginx > модуль который должен иметь возможность проксировать входящий запрос на > заранее не определенные места (к примеру url куда производить проксирование > будут браться из запроса к другому веб-сервису или из БД, запросы к которым > будут происходить в модуле). > Пока придумал структуру через задание переменной и изменения ее значения в > зависимости от приходящего url, а затем передачи управления прокси модулю > на > эту переменную: > proxy_pass $variable_name > Как вы оцениваете такую реализацию? Жизнеспособна либо она при нагрузке? > Может есть более правильные решения такого вопроса? > > Так же есть вопрос про обращениям к сторонним вебсервисам в теле модуля, > лучше использовать связку subrequest+proxy_pass или же вполне можно > воспользоваться сторонней библиотекой, к примеру libcurl? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264622,264622#msg-264622 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From nginx-forum на forum.nginx.org Fri Feb 19 13:58:48 2016 From: nginx-forum на forum.nginx.org (sirakuzi) Date: Fri, 19 Feb 2016 08:58:48 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtC60YHQuNGA0L7QstCw0L3QuNC1INC/0L4g0LfQsNGA0LDQvdC1?= =?UTF-8?B?0LUg0L3QtSDQt9Cw0LTQsNC90L3Ri9C8INGB0YHRi9C70LrQsNC8?= In-Reply-To: References: Message-ID: Спасибо за хороший пример. В целом в модуле еще много логики, так что его написание своего модуля было оправдано, ну и в целом он уже написан и функционирует, у меня были сомнения в оправданности использования переменных для передачи ссылки, но смотрю в вашем примере вы так же используете переменные. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264622,264630#msg-264630 From nginx-forum на forum.nginx.org Fri Feb 19 14:00:08 2016 From: nginx-forum на forum.nginx.org (trace) Date: Fri, 19 Feb 2016 09:00:08 -0500 Subject: =?UTF-8?B?NDA0INC+0YjQuNCx0LrQsCDQv9GA0Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC4?= =?UTF-8?B?0LggcHJveHkgY2FjaGU=?= Message-ID: Здравствуйте. Имеется вот такой конфиг proxy_cache all; proxy_cache_valid 200 404 1m; proxy_cache_methods GET; set $nocache_router 0; if ($http_user_agent ~ "Apache-HttpClient") { set $nocache_router 1; } proxy_ignore_headers "Cache-Control" "Expires"; proxy_cache_key "$request_method|$http_x|$request_uri"; proxy_cache_bypass $nocache_router; proxy_no_cache $nocache_router; При выше указанном конфиге запросы на location завершаются 404 статусом. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264631,264631#msg-264631 From mdounin на mdounin.ru Fri Feb 19 14:13:32 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 19 Feb 2016 17:13:32 +0300 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: <20160219141332.GU1489@mdounin.ru> Hello! On Fri, Feb 19, 2016 at 03:49:41AM -0500, IvanMiller wrote: > Привет > Есть такие логи, > 54. - - [19/Feb/2016:06:16:25 +0000] "GET > /mail_confirm/e87bde4d9bc9b4d84abe677a91c299e0351c462ae2367361f31df3978cf0f71992749f59d580fadf46eb13df54292ee711b9caaf39ad8b919bc65e399dc13b3e > HTTP/1.1" 200 1997 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) > AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" > "54.179.1" > > > 37.1. - - [19/Feb/2016:06:16:40 +0000] "GET /profile HTTP/1.1" 200 2304 > "https://mail.domain.ru/confirm_name/876b76f1fcd60f9bbeb20348ab98837baf8b566dc49b202eb9ab49686e27e724" > "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) > Chrome/44.0.2403.157 Safari/537.36" "37.1" > > > охото их писать в отдельный лог, подскажите как лучше это сделать ? Правильнее всего - писать в отдельный лог в рамках специально созданного для этого location'а, e.g.: location /mail_confirm/ { access_log /path/to/mail_confirm_log combined; ... } Подробнее тут: http://nginx.org/r/location/ru http://nginx.org/r/access_log/ru -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Fri Feb 19 14:16:47 2016 From: nginx-forum на forum.nginx.org (sirakuzi) Date: Fri, 19 Feb 2016 09:16:47 -0500 Subject: =?UTF-8?B?UmU6INCf0YDQvtC60YHQuNGA0L7QstCw0L3QuNC1INC/0L4g0LfQsNGA0LDQvdC1?= =?UTF-8?B?0LUg0L3QtSDQt9Cw0LTQsNC90L3Ri9C8INGB0YHRi9C70LrQsNC8?= In-Reply-To: References: Message-ID: <3cb74eba0a0e4e8260f61b50eb48367a.NginxMailingListRussian@forum.nginx.org> Что-то не совсем понял как это использовать для моих задач. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264622,264633#msg-264633 From nginx-forum на forum.nginx.org Fri Feb 19 16:37:48 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Fri, 19 Feb 2016 11:37:48 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: <0a57b4e46f6a07ee70933c92ef2d648c.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > map и ключевое слово "if" директивы access_log > Да, такой вариант я пробовал. Пробовал и $http_referer и $http_host ничего в лог не попадало. Завтра еще попробую ... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264638#msg-264638 From nginx-forum на forum.nginx.org Fri Feb 19 16:39:55 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Fri, 19 Feb 2016 11:39:55 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <20160219141332.GU1489@mdounin.ru> References: <20160219141332.GU1489@mdounin.ru> Message-ID: > Правильнее всего - писать в отдельный лог в рамках специально > созданного для этого location'а, e.g.: > > location /mail_confirm/ { > access_log /path/to/mail_confirm_log combined; > ... > } > > Подробнее тут: > > http://nginx.org/r/location/ru > http://nginx.org/r/access_log/ru > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Да, это самы простой способо, если бы у меня location на скрипты php небыл прописан регулярным выражением. Как вариант подниму песочницу, попробую index.php напрямую в лакейшен вписать, посмотрю, как сайт жить будет. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264639#msg-264639 From nginx на kinetiksoft.com Fri Feb 19 17:12:34 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Fri, 19 Feb 2016 20:12:34 +0300 Subject: =?UTF-8?B?UmU6IDQwNCDQvtGI0LjQsdC60LAg0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw?= =?UTF-8?B?0L3QuNC4IHByb3h5IGNhY2hl?= In-Reply-To: References: Message-ID: <1570102.HzJVqAug6b@cybernote> В письме от 19 февраля 2016 09:00:08 пользователь trace написал: > set $nocache_router 0; > if ($http_user_agent ~ "Apache-HttpClient") { > set $nocache_router 1; > } Здравствуйте! Попробуйте для начала цитируемое заменить на map $http_user_agent $nocache_router { default 0; ~Apache-HttpClient 1; } Подробнее: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Sat Feb 20 06:19:22 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Sat, 20 Feb 2016 11:19:22 +0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: <20160219141332.GU1489@mdounin.ru> Message-ID: а как у вас прописан лакейшен на скрипты php? 19 февраля 2016 г., 21:39 пользователь IvanMiller < nginx-forum на forum.nginx.org> написал: > > Правильнее всего - писать в отдельный лог в рамках специально > > созданного для этого location'а, e.g.: > > > > location /mail_confirm/ { > > access_log /path/to/mail_confirm_log combined; > > ... > > } > > > > Подробнее тут: > > > > http://nginx.org/r/location/ru > > http://nginx.org/r/access_log/ru > > > > -- > > Maxim Dounin > > http://nginx.org/ > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > Да, это самы простой способо, если бы у меня location на скрипты php небыл > прописан регулярным выражением. > Как вариант подниму песочницу, попробую index.php напрямую в лакейшен > вписать, посмотрю, как сайт жить будет. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264639#msg-264639 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Sat Feb 20 07:19:20 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Sat, 20 Feb 2016 02:19:20 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: Илья Шипицин Wrote: ------------------------------------------------------- > а как у вас прописан лакейшен на скрипты php? > > 19 февраля 2016 г., 21:39 пользователь IvanMiller < > nginx-forum на forum.nginx.org> написал: > Сейчас сделал location /index.php { include php.domain.conf; } и для лога location /mail_confirm/ { access_log /var/log/nginx/confirm.log main; } но в лог ничего не попадает... есть подозрение, что вот из-за этого if (!-e $request_filename) { rewrite ^ /index.php last; } если эту директиву убирать, получается 404 на любую ссылку, нпирмер /news Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264657#msg-264657 From nginx-forum на forum.nginx.org Sat Feb 20 07:54:43 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Sat, 20 Feb 2016 02:54:43 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> Что то из-за этого rewrite вообще толком ничего не работает пробую через map В http map $uri $confirm { "/adm" "1"; default "0"; } в сервере access_log /var/log/nginx/access.1.log main if=$confirm; в логе голяк ... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264658#msg-264658 From chipitsine на gmail.com Sat Feb 20 07:56:12 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Sat, 20 Feb 2016 12:56:12 +0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: более изящно получается на try_files (если есть файл - отдаем его, если нет - проксируем на fastcgi): location / { try_files $uri $uri/ @zend; index index.php index.html index.htm; } location ~ \.php$ { include fastcgi_params; try_files $uri @zend; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } location @zend { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/index.php; } location ~ /\. { deny all; } 20 февраля 2016 г., 12:19 пользователь IvanMiller < nginx-forum на forum.nginx.org> написал: > Илья Шипицин Wrote: > ------------------------------------------------------- > > а как у вас прописан лакейшен на скрипты php? > > > > 19 февраля 2016 г., 21:39 пользователь IvanMiller < > > nginx-forum на forum.nginx.org> написал: > > > > Сейчас сделал > > location /index.php { > include php.domain.conf; > } > > и для лога > > location /mail_confirm/ { > access_log /var/log/nginx/confirm.log main; > } > > но в лог ничего не попадает... > > есть подозрение, что вот из-за этого > > if (!-e $request_filename) { > rewrite ^ /index.php last; > } > если эту директиву убирать, получается 404 на любую ссылку, нпирмер /news > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264657#msg-264657 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Sat Feb 20 07:57:17 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Sat, 20 Feb 2016 02:57:17 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> References: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> Message-ID: <513708a318f85e0abb09d17d48f6adf1.NginxMailingListRussian@forum.nginx.org> В общий то лог эти запросы попадают ... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264659#msg-264659 From chipitsine на gmail.com Sat Feb 20 07:57:35 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Sat, 20 Feb 2016 12:57:35 +0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> References: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> Message-ID: map $uri $confirm { ~^adm 1; default 0; } 20 февраля 2016 г., 12:54 пользователь IvanMiller < nginx-forum на forum.nginx.org> написал: > Что то из-за этого rewrite вообще толком ничего не работает > пробую через map > > В http > > map $uri $confirm { > "/adm" "1"; > default "0"; > } > > в сервере > > access_log /var/log/nginx/access.1.log main if=$confirm; > > в логе голяк ... > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264658#msg-264658 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Sat Feb 20 07:58:39 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Sat, 20 Feb 2016 12:58:39 +0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <513708a318f85e0abb09d17d48f6adf1.NginxMailingListRussian@forum.nginx.org> References: <779e4ff76fba12119667722dcbd4b509.NginxMailingListRussian@forum.nginx.org> <513708a318f85e0abb09d17d48f6adf1.NginxMailingListRussian@forum.nginx.org> Message-ID: добавьте в общий лог переменную $confirm, ноль пишет ? 20 февраля 2016 г., 12:57 пользователь IvanMiller < nginx-forum на forum.nginx.org> написал: > В общий то лог эти запросы попадают ... > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264659#msg-264659 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Sat Feb 20 11:16:52 2016 From: nginx-forum на forum.nginx.org (trace) Date: Sat, 20 Feb 2016 06:16:52 -0500 Subject: =?UTF-8?B?UmU6IDQwNCDQvtGI0LjQsdC60LAg0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw?= =?UTF-8?B?0L3QuNC4IHByb3h5IGNhY2hl?= In-Reply-To: <1570102.HzJVqAug6b@cybernote> References: <1570102.HzJVqAug6b@cybernote> Message-ID: Иван, спасибо. Дык это тоже самое, только в профиль). Попробовал, работает. Может какая-то магия есть, про которую я не знаю. Возможно для разных location надо делать разный proxy_cache_path ? У меня в другом location также прописаны правила кеширования. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264631,264673#msg-264673 From nginx-forum на forum.nginx.org Sat Feb 20 12:05:21 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Sat, 20 Feb 2016 07:05:21 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: References: Message-ID: <65672bc101e1e49b3f895aebd4274e04.NginxMailingListRussian@forum.nginx.org> Уже вот так сделал map $request:$http_referer:$uri $confirm { "~^/adm/:/my.domain.com/:/adm/" 1; default 0; } не прет. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264669#msg-264669 From nginx на kinetiksoft.com Sat Feb 20 19:54:33 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Sat, 20 Feb 2016 22:54:33 +0300 Subject: =?UTF-8?B?UmU6IDQwNCDQvtGI0LjQsdC60LAg0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw?= =?UTF-8?B?0L3QuNC4IHByb3h5IGNhY2hl?= In-Reply-To: References: <1570102.HzJVqAug6b@cybernote> Message-ID: <3617425.I1kULSGEGe@cybernote> В письме от 20 февраля 2016 06:16:52 пользователь trace написал: > Дык это тоже самое, только в профиль). Нет. > . > > Может какая-то магия есть, про которую я не знаю. Да, есть особенная императивная магия директивы if и модуля rewrite. Книга заклинаний, вот тут: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ , как я уже говорил. Там собственно даже примеры есть похожие на Ваш. From nginx на kinetiksoft.com Sat Feb 20 19:59:46 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Sat, 20 Feb 2016 22:59:46 +0300 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <65672bc101e1e49b3f895aebd4274e04.NginxMailingListRussian@forum.nginx.org> References: <65672bc101e1e49b3f895aebd4274e04.NginxMailingListRussian@forum.nginx.org> Message-ID: <1689710.SeDKVgp9qP@cybernote> В письме от 20 февраля 2016 07:05:21 пользователь IvanMiller написал: > Уже вот так сделал > map $request:$http_referer:$uri $confirm { > "~^/adm/:/my.domain.com/:/adm/" 1; > default 0; > } > > не прет. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264614,264669#msg-264669 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Уточните, пожалуйста, по каким признакам Вы хотите отделять логи? Необходимо ли именно сочетание (И) трех переменных: $request, $http_referer и $uri или достаточно одной? Можете привести свой конфиг максимально полно? Сначала и до конца, вырезав приватную информацию. From nginx-forum на forum.nginx.org Sun Feb 21 05:29:35 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Sun, 21 Feb 2016 00:29:35 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <1689710.SeDKVgp9qP@cybernote> References: <1689710.SeDKVgp9qP@cybernote> Message-ID: <069d88aa1b287cbacc33253e2020f3c1.NginxMailingListRussian@forum.nginx.org> Любое совпадение. http { map $request:$http_referer:$uri $confirm { "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" 1; default 0; } server { listen *:443 ssl spdy; server_name mydomain.com www.mydomain.com; ssl on; ssl_certificate /ssl/mydomain.com.crt; ssl_certificate_key /ssl/mydomain.com.key; ssl_session_timeout 16m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # access_log /var/log/nginx/mydomain.access.log main; # access_log /var/log/nginx/mydomain.access.cf.log cf_custom; error_log /var/log/nginx/mydomain.error.log; access_log /var/log/nginx/mydomain.access_confirm.log main if=$confirm; location ~* ^.+\.(jpg|jpeg|gif|png|ico|js|css)$ { add_header cache-control "max-age=3600, must-revalidate"; } location /server-status { stub_status on; } root /www/mydomain.com; index index.html index.htm index.php; if (!-e $request_filename) { rewrite ^ /index.php last; } location /refac { if (!-e $request_filename) { rewrite ^ /refac/index.php last; } } location ~ \.php$ { include php.domain.conf; } location ~ \.php(.*)$ { include php.domain.conf; } } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264679#msg-264679 From auskov на neolabs.kz Mon Feb 22 06:25:42 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Mon, 22 Feb 2016 12:25:42 +0600 (ALMT) Subject: =?UTF-8?B?RndkOiBTSUdBQlJUINCyINGB0LDQvNC+0L/QuNGB0L3QvtC8INC80L7QtNGD0Ls=?= =?UTF-8?B?0LU=?= In-Reply-To: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> Message-ID: <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> ~~~ wbr, Alexander Uskov ----- Пересланное сообщение ----- От: "Alexander Uskov" Кому: nginx-devel на nginx.org Отправленные: Понедельник, 22 Февраль 2016 г 12:22:57 Тема: SIGABRT в самописном модуле Добый день. Есть самописный модуль со следующей задачей: Поймать обращение у url, если есть определенный GET параметр, то отдать файл с диска, поменяв в нем %V на значение параметра, если нет, то попытаться прочесть значение куки, если нет и его, то сгенерить этот параметр и сделать постоянный редирект на ?параметр=значение. Модуль писал года 2 назад, сам в C сильно плаваю. Скомпилинное решение сейчас работает в продакшине. Попытался пересобрать всё на новой машине (пересборка того, что сейчас работает дала такие-же результаты), появилась проблемма: *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001ad6180 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7d023)[0x7f19765a8023] nginx: worker process(ngx_destroy_pool+0x6f)[0x412a7f] nginx: worker process(ngx_http_free_request+0x108)[0x444438] nginx: worker process[0x444c49] nginx: worker process(ngx_http_core_content_phase+0x39)[0x440a29] nginx: worker process(ngx_http_core_run_phases+0x25)[0x43b2d5] nginx: worker process(ngx_http_process_request+0xa3)[0x446113] nginx: worker process[0x446976] nginx: worker process[0x431dd7] nginx: worker process(ngx_process_events_and_timers+0x53)[0x42a293] nginx: worker process[0x42fe41] nginx: worker process(ngx_spawn_process+0x164)[0x42e854] nginx: worker process[0x430014] nginx: worker process(ngx_master_process_cycle+0x1cb)[0x430adb] nginx: worker process(main+0x826)[0x4106d6] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f197654cb15] nginx: worker process[0x4109f1] ======= Memory map: ======== 00400000-004b7000 r-xp 00000000 08:03 8257917 /usr/sbin/nginx 006b6000-006b7000 r--p 000b6000 08:03 8257917 /usr/sbin/nginx 006b7000-006ce000 rw-p 000b7000 08:03 8257917 /usr/sbin/nginx 006ce000-006dd000 rw-p 00000000 00:00 0 01aa5000-01b8d000 rw-p 00000000 00:00 0 [heap] 01b8d000-01bcf000 rw-p 00000000 00:00 0 [heap] 7f196c000000-7f196c021000 rw-p 00000000 00:00 0 7f196c021000-7f1970000000 ---p 00000000 00:00 0 7f19723db000-7f19723f0000 r-xp 00000000 08:03 2097154 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 ... 7f1977e61000-7f1977e62000 rw-p 00000000 00:00 0 7ffcbba5a000-7ffcbba7b000 rw-p 00000000 00:00 0 [stack] 7ffcbbb24000-7ffcbbb26000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 2016/02/22 12:34:43 [alert] 22924#0: worker process 22925 exited on signal 6 *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001b40cf0 *** Вылазит не на все запросы, а только под нагрузкой :( Поэтому дианностировать сильно сложно. Насколько смог отдиагностировать, проблема появляется именно в части, когда идет запрос без параметра. Т-е проблема где-то в следующем участке кода: // Проверяю, передано ли что в GET, передано ли GET['c'] и его длинну, если да, ни чего не делаю, иначе - редирект. if (r->args.len && ngx_http_arg(r, (u_char *) zero_js_config->get_parm.data, zero_js_config->get_parm.len, &get_c) == NGX_OK && get_c.len <=14 && get_c.len>10) { /* void() */ } else { // Отдаем редирект с кукой в GET // Пытаемся найти COOKIE['client_cc'] n = ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &zero_js_config->cookie_name, &cookie); // Если кука есть и ее длинна <=14 заносим значение в uniqid иначе генерим php_uniqid() if (n != NGX_DECLINED && cookie.len<=14) { ngx_sprintf(uniqid, "%V", &cookie); } else { ngx_gettimeofday(&tv); sec = (int) tv.tv_sec; usec = (int) (tv.tv_usec % 0x100000); ngx_sprintf(uniqid, "%i%08xi%05xi", ngx_random() % 10, sec, usec); } // создаем url для редиректа turl = ngx_pcalloc(r->pool, sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid)); if (turl == NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } ngx_sprintf(turl, "?%V=%s", &zero_js_config->get_parm, uniqid); // Вставляем Location r->headers_out.location = ngx_list_push(&r->headers_out.headers); if (r->headers_out.location == NULL) { return NGX_ERROR; } r->headers_out.location->hash = 1; r->headers_out.location->key.len = sizeof("Location") - 1; r->headers_out.location->key.data = (u_char *) "Location"; r->headers_out.location->value.len = sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid); r->headers_out.location->value.data = turl; return NGX_HTTP_MOVED_PERMANENTLY; // Отдали редирект } Что тут может быть не так, что nginx падает с double free or corruption? Или посоветуйте, как это можно отладить? Малым трафиком (ab или curl зацикленный) повторить проблему не могу. Большой - порядка 8k запросов в секунду - клиенты жалуются :D ~~~ wbr, Alexander Uskov _______________________________________________ nginx-devel mailing list nginx-devel на nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel From nginx-forum на forum.nginx.org Mon Feb 22 08:29:05 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Mon, 22 Feb 2016 03:29:05 -0500 Subject: =?UTF-8?B?bmdpbngg0L7RgtGK0LXQtNCw0LXRgiDQstGB0LUg0L/RgNC+0YbQtdGB0YHQvtGA?= =?UTF-8?B?0L3QvtC1INCy0YDQtdC80Y8=?= Message-ID: <9ec71f4361862c48662b59107cfb575f.NginxMailingListRussian@forum.nginx.org> Доброго времени суток. После обновления сервера до последнего Debian периодически наблюдаю картину, что рабочие процессы nginx по-одному начинают отъедать 99% процессорного времени. То есть если наблюдать за top, то сначала один процесс начинает отъедать 99%, затем через некоторое время второй, и так далее. Чем они заняты мне неизвестно, но nginx очень много времени проводит в system и довольно много - в user. После service nginx restart все возвращает в норму, и вновь повторяется в случайный промежуток времени от дня до недели. Использую сборку nginx от dotdeb.org. С теми же самыми конфигами и той же версией nginx на предыдущем Debian все было отлично. Подскажите, как со всем этим быть? cpu usage: http://s017.radikal.ru/i414/1602/c0/1559bc69821c.png load avarage: http://s017.radikal.ru/i426/1602/b0/67b202c68010.png uname -a: Linux hello 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux nginx -V: nginx version: nginx/1.8.1 built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_gunzip_module --with-file-aio --with-threads --with-http_spdy_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/usr/src/builddir/debian/modules/nginx-auth-pam --add-module=/usr/src/builddir/debian/modules/nginx-dav-ext-module --add-module=/usr/src/builddir/debian/modules/nginx-echo --add-module=/usr/src/builddir/debian/modules/nginx-upstream-fair --add-module=/usr/src/builddir/debian/modules/ngx_http_substitutions_filter_module --add-module=/usr/src/builddir/debian/modules/nginx-cache-purge --add-module=/usr/src/builddir/debian/modules/ngx_http_pinba_module --add-module=/usr/src/builddir/debian/modules/nginx-x-rid-header --with-ld-opt=-lossp-uuid Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264701#msg-264701 From vbart на nginx.com Mon Feb 22 09:51:06 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Mon, 22 Feb 2016 12:51:06 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <9ec71f4361862c48662b59107cfb575f.NginxMailingListRussian@forum.nginx.org> References: <9ec71f4361862c48662b59107cfb575f.NginxMailingListRussian@forum.nginx.org> Message-ID: <8673596.AkpYT7eX7d@vbart-laptop> On Monday 22 February 2016 03:29:05 mikhal123 wrote: > Доброго времени суток. > > После обновления сервера до последнего Debian периодически > наблюдаю картину, что рабочие процессы nginx по-одному начинают отъедать > 99% процессорного времени. То есть если наблюдать за top, то сначала один > процесс начинает отъедать 99%, затем через некоторое время второй, и > так далее. Чем они заняты мне неизвестно, но nginx очень много времени > проводит в system и довольно много - в user. После service nginx restart > все возвращает в норму, и вновь повторяется в случайный промежуток времени > от дня до недели. > > Использую сборку nginx от dotdeb.org. С теми же самыми конфигами и той же > версией nginx на предыдущем Debian все было отлично. > > Подскажите, как со всем этим быть? [...] > --add-module=/usr/src/builddir/debian/modules/nginx-auth-pam > --add-module=/usr/src/builddir/debian/modules/nginx-dav-ext-module > --add-module=/usr/src/builddir/debian/modules/nginx-echo > --add-module=/usr/src/builddir/debian/modules/nginx-upstream-fair > --add-module=/usr/src/builddir/debian/modules/ngx_http_substitutions_filter_ > module --add-module=/usr/src/builddir/debian/modules/nginx-cache-purge > --add-module=/usr/src/builddir/debian/modules/ngx_http_pinba_module > --add-module=/usr/src/builddir/debian/modules/nginx-x-rid-header > --with-ld-opt=-lossp-uuid > Поставить официальную сборку без сторонних модулей. http://nginx.org/ru/linux_packages.html -- Валентин Бартенев From nginx-forum на forum.nginx.org Mon Feb 22 11:58:27 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Mon, 22 Feb 2016 06:58:27 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <8673596.AkpYT7eX7d@vbart-laptop> References: <8673596.AkpYT7eX7d@vbart-laptop> Message-ID: <7ee60dfee6f371adbc26b35a33072db8.NginxMailingListRussian@forum.nginx.org> хорошо, поставил nginx/1.9.11 из официальных репов Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264707#msg-264707 From nginx на kinetiksoft.com Mon Feb 22 12:23:26 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Mon, 22 Feb 2016 15:23:26 +0300 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <069d88aa1b287cbacc33253e2020f3c1.NginxMailingListRussian@forum.nginx.org> References: <1689710.SeDKVgp9qP@cybernote> <069d88aa1b287cbacc33253e2020f3c1.NginxMailingListRussian@forum.nginx.org> Message-ID: <4526698.ptoqhXMFQe@cybernote> В письме от 21 февраля 2016 00:29:35 пользователь IvanMiller написал: > Любое совпадение. > > http { > map $request:$http_referer:$uri $confirm { > "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" 1; > default 0; > } Уточните, пожалуйста, ЛЮБОЕ совпадение подаразумевает ИЛИ, Вы же пишете конструкцию для И. То есть логи будут писаться, если $request ~ ^/mail_confirm/ И $http_referer ~ /mydomain-e.com/mail_confirm/ И $uri ~ mail_confirm. Попробуйте заменить map $request:$http_referer:$uri $confirm { "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" 1; default 0; } сначала на map $request $req_confirm { ~/mail_confirm/ 1; default 0; } map $http_referer $ref_confirm { ~/mydomain-e.com/mail_confirm/ 1; default 0; } map $uri $uri_confirm { ~mail_confirm 1; default 0; } далее, если Вам таки нужен И, то map $req_confirm$ref_confirm$uri_confirm $confirm { 111 1; default 0; } Если же хотите ИЛИ, то map $req_confirm$ref_confirm$uri_confirm $confirm { default 1; 000 0; } > > server { > > if (!-e $request_filename) { > rewrite ^ /index.php last; > } Здесь и ниже if лучше заменить на try_files $uri /index.php > location /refac { > if (!-e $request_filename) { > rewrite ^ /refac/index.php last; > } > } From auskov на neolabs.kz Mon Feb 22 12:58:34 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Mon, 22 Feb 2016 18:58:34 +0600 (ALMT) Subject: =?UTF-8?B?UmU6IFNJR0FCUlQg0LIg0YHQsNC80L7Qv9C40YHQvdC+0Lwg0LzQvtC00YPQu9C1?= In-Reply-To: <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> Message-ID: <1635848729.55179.1456145914363.JavaMail.zimbra@neolabs.kz> Нашел еще вылет. Сильно реже, но с подобной диагностикой вылетает по SIGSEGV. ~~~ wbr, Alexander Uskov ----- Пересланное сообщение ----- От: "Alexander Uskov" Кому: nginx-devel на nginx.org Отправленные: Понедельник, 22 Февраль 2016 г 12:22:57 Тема: SIGABRT в самописном модуле Добый день. Есть самописный модуль со следующей задачей: Поймать обращение у url, если есть определенный GET параметр, то отдать файл с диска, поменяв в нем %V на значение параметра, если нет, то попытаться прочесть значение куки, если нет и его, то сгенерить этот параметр и сделать постоянный редирект на ?параметр=значение. Модуль писал года 2 назад, сам в C сильно плаваю. Скомпилинное решение сейчас работает в продакшине. Попытался пересобрать всё на новой машине (пересборка того, что сейчас работает дала такие-же результаты), появилась проблемма: *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001ad6180 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7d023)[0x7f19765a8023] nginx: worker process(ngx_destroy_pool+0x6f)[0x412a7f] nginx: worker process(ngx_http_free_request+0x108)[0x444438] nginx: worker process[0x444c49] nginx: worker process(ngx_http_core_content_phase+0x39)[0x440a29] nginx: worker process(ngx_http_core_run_phases+0x25)[0x43b2d5] nginx: worker process(ngx_http_process_request+0xa3)[0x446113] nginx: worker process[0x446976] nginx: worker process[0x431dd7] nginx: worker process(ngx_process_events_and_timers+0x53)[0x42a293] nginx: worker process[0x42fe41] nginx: worker process(ngx_spawn_process+0x164)[0x42e854] nginx: worker process[0x430014] nginx: worker process(ngx_master_process_cycle+0x1cb)[0x430adb] nginx: worker process(main+0x826)[0x4106d6] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f197654cb15] nginx: worker process[0x4109f1] ======= Memory map: ======== 00400000-004b7000 r-xp 00000000 08:03 8257917 /usr/sbin/nginx 006b6000-006b7000 r--p 000b6000 08:03 8257917 /usr/sbin/nginx 006b7000-006ce000 rw-p 000b7000 08:03 8257917 /usr/sbin/nginx 006ce000-006dd000 rw-p 00000000 00:00 0 01aa5000-01b8d000 rw-p 00000000 00:00 0 [heap] 01b8d000-01bcf000 rw-p 00000000 00:00 0 [heap] 7f196c000000-7f196c021000 rw-p 00000000 00:00 0 7f196c021000-7f1970000000 ---p 00000000 00:00 0 7f19723db000-7f19723f0000 r-xp 00000000 08:03 2097154 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 ... 7f1977e61000-7f1977e62000 rw-p 00000000 00:00 0 7ffcbba5a000-7ffcbba7b000 rw-p 00000000 00:00 0 [stack] 7ffcbbb24000-7ffcbbb26000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 2016/02/22 12:34:43 [alert] 22924#0: worker process 22925 exited on signal 6 *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001b40cf0 *** Вылазит не на все запросы, а только под нагрузкой :( Поэтому дианностировать сильно сложно. Насколько смог отдиагностировать, проблема появляется именно в части, когда идет запрос без параметра. Т-е проблема где-то в следующем участке кода: // Проверяю, передано ли что в GET, передано ли GET['c'] и его длинну, если да, ни чего не делаю, иначе - редирект. if (r->args.len && ngx_http_arg(r, (u_char *) zero_js_config->get_parm.data, zero_js_config->get_parm.len, &get_c) == NGX_OK && get_c.len <=14 && get_c.len>10) { /* void() */ } else { // Отдаем редирект с кукой в GET // Пытаемся найти COOKIE['client_cc'] n = ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &zero_js_config->cookie_name, &cookie); // Если кука есть и ее длинна <=14 заносим значение в uniqid иначе генерим php_uniqid() if (n != NGX_DECLINED && cookie.len<=14) { ngx_sprintf(uniqid, "%V", &cookie); } else { ngx_gettimeofday(&tv); sec = (int) tv.tv_sec; usec = (int) (tv.tv_usec % 0x100000); ngx_sprintf(uniqid, "%i%08xi%05xi", ngx_random() % 10, sec, usec); } // создаем url для редиректа turl = ngx_pcalloc(r->pool, sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid)); if (turl == NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } ngx_sprintf(turl, "?%V=%s", &zero_js_config->get_parm, uniqid); // Вставляем Location r->headers_out.location = ngx_list_push(&r->headers_out.headers); if (r->headers_out.location == NULL) { return NGX_ERROR; } r->headers_out.location->hash = 1; r->headers_out.location->key.len = sizeof("Location") - 1; r->headers_out.location->key.data = (u_char *) "Location"; r->headers_out.location->value.len = sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid); r->headers_out.location->value.data = turl; return NGX_HTTP_MOVED_PERMANENTLY; // Отдали редирект } Что тут может быть не так, что nginx падает с double free or corruption? Или посоветуйте, как это можно отладить? Малым трафиком (ab или curl зацикленный) повторить проблему не могу. Большой - порядка 8k запросов в секунду - клиенты жалуются :D ~~~ wbr, Alexander Uskov _______________________________________________ nginx-devel mailing list nginx-devel на nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel From nginx-forum на forum.nginx.org Mon Feb 22 15:00:13 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Mon, 22 Feb 2016 10:00:13 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <8673596.AkpYT7eX7d@vbart-laptop> References: <8673596.AkpYT7eX7d@vbart-laptop> Message-ID: <9f8a981500c5c3aee3dac24d00df6047.NginxMailingListRussian@forum.nginx.org> > Поставить официальную сборку без сторонних модулей. > http://nginx.org/ru/linux_packages.html как я и подозревал, официальная сборка 1.9.11 ведет себя также что можно сделать для выяснения ситуации? пока не перезапускаю nginx, так как сервер мощный и nginx даже в таком состоянии особо не мешает скриншот top: http://s019.radikal.ru/i605/1602/ac/f5a26b9daf3b.png nginx -V: nginx version: nginx/1.9.11 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264711#msg-264711 From basil на vpm.net.ua Mon Feb 22 16:19:53 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Mon, 22 Feb 2016 18:19:53 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <9f8a981500c5c3aee3dac24d00df6047.NginxMailingListRussian@forum.nginx.org> References: <8673596.AkpYT7eX7d@vbart-laptop> <9f8a981500c5c3aee3dac24d00df6047.NginxMailingListRussian@forum.nginx.org> Message-ID: может просто попробовать понять что он делает ? там конечно не сильно красиво, но strace -p 21312 2016-02-22 17:00 GMT+02:00 mikhal123 : > > Поставить официальную сборку без сторонних модулей. > > http://nginx.org/ru/linux_packages.html > > как я и подозревал, официальная сборка 1.9.11 ведет себя также > что можно сделать для выяснения ситуации? > пока не перезапускаю nginx, так как сервер мощный и nginx даже в таком > состоянии особо не мешает > > скриншот top: http://s019.radikal.ru/i605/1602/ac/f5a26b9daf3b.png > > nginx -V: > nginx version: nginx/1.9.11 > built by gcc 4.9.2 (Debian 4.9.2-10) > built with OpenSSL 1.0.1k 8 Jan 2015 > TLS SNI support enabled > configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx > --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid > --lock-path=/var/run/nginx.lock > --http-client-body-temp-path=/var/cache/nginx/client_temp > --http-proxy-temp-path=/var/cache/nginx/proxy_temp > --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp > --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp > --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx > --with-http_ssl_module --with-http_realip_module > --with-http_addition_module > --with-http_sub_module --with-http_dav_module --with-http_flv_module > --with-http_mp4_module --with-http_gunzip_module > --with-http_gzip_static_module --with-http_random_index_module > --with-http_secure_link_module --with-http_stub_status_module > --with-http_auth_request_module --with-threads --with-stream > --with-stream_ssl_module --with-http_slice_module --with-mail > --with-mail_ssl_module --with-file-aio --with-http_v2_module > --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat > -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' > --with-ld-opt='-Wl,-z,relro > -Wl,--as-needed' --with-ipv6 > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264701,264711#msg-264711 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From basil на vpm.net.ua Mon Feb 22 16:21:26 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Mon, 22 Feb 2016 18:21:26 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <8673596.AkpYT7eX7d@vbart-laptop> <9f8a981500c5c3aee3dac24d00df6047.NginxMailingListRussian@forum.nginx.org> Message-ID: 22 февраля 2016 г., 18:19 пользователь Vasiliy P. Melnik написал: > может просто попробовать понять что он делает ? там конечно не сильно > красиво, но > > strace -p 21312 > > lsof -p 21312 и файлы открытые ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Mon Feb 22 18:20:52 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Mon, 22 Feb 2016 13:20:52 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: Message-ID: <7a9b612a6bf6ca5e64bf542dace6ad5e.NginxMailingListRussian@forum.nginx.org> Vasiliy P. Melnik Wrote: ------------------------------------------------------- > может просто попробовать понять что он делает ? там конечно не сильно > красиво, но > > strace -p 21312 вот эти шесть строчек, повторяющиеся бесконечное количество раз (за 30 секунд генерится файл с ними размером 200 мб) epoll_ctl(18, EPOLL_CTL_MOD, 11, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=1467215760, u64=139725343289232}}) = 0 epoll_wait(18, {{EPOLLOUT, {u32=1467215760, u64=139725343289232}}}, 512, 500) = 1 epoll_ctl(18, EPOLL_CTL_MOD, 11, {EPOLLIN|EPOLLRDHUP|EPOLLET, {u32=1467215760, u64=139725343289232}}) = 0 futex(0x746234, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x746230, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0x7461f0, FUTEX_WAKE_PRIVATE, 1) = 1 epoll_wait(18, {{EPOLLIN, {u32=7338688, u64=7338688}}}, 512, 500) = 1 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264717#msg-264717 From vadim.lazovskiy на gmail.com Mon Feb 22 18:28:28 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Mon, 22 Feb 2016 21:28:28 +0300 Subject: =?UTF-8?B?0J7QsdGJ0LjQuSDQutGN0Ygg0L3QsCDQvdC10YHQutC+0LvRjNC60LjRhSDQtNC4?= =?UTF-8?B?0YHQutCw0YU=?= Message-ID: Здравствуйте. Имеется, допустим, 16 отдельных дисков. Задача сделать общий кэш. Проще всего указать levels=1, на каждом диске создать по каталогу (от 0 до f) и собрать их в симлинками в proxy_cache_path. При этом возникает проблема со временными файлами. Они создаются вне дисков во временных каталогах и из-за этого перемещение файлов происходит между файловыми системами, что очень долго и накладно. Не решает проблему и опция use_temp_path. В данном случае, она просто создает еще один временный каталог, но опять не там где нужно. Проблему бы решила запись временного файла непосредственно в каталог с кешем с учетом иерархии levels c последующим переименованием в оконечное имя. Навроде параметра use_temp_path=inplace Подскажите, пожалуйста, как правильнее реализовать общий кэш на отдельных дисках? -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Mon Feb 22 18:33:29 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 22 Feb 2016 21:33:29 +0300 Subject: =?UTF-8?B?UmU6INCe0LHRidC40Lkg0LrRjdGIINC90LAg0L3QtdGB0LrQvtC70YzQutC40YUg?= =?UTF-8?B?0LTQuNGB0LrQsNGF?= In-Reply-To: References: Message-ID: <56CB5479.8030909@nginx.com> On 2/22/16 9:28 PM, Vadim Lazovskiy wrote: > Здравствуйте. > > Имеется, допустим, 16 отдельных дисков. > Задача сделать общий кэш. > > Проще всего указать levels=1, на каждом диске создать по каталогу > (от 0 до f) и собрать их в симлинками в proxy_cache_path. > > При этом возникает проблема со временными файлами. Они создаются вне > дисков во временных каталогах и из-за этого перемещение файлов > происходит между файловыми системами, что очень долго и накладно. > > Не решает проблему и опция use_temp_path. В данном случае, она > просто создает еще один временный каталог, но опять не там где нужно. > Не совсем ясно, почему не решает проблему use_temp_path=off. Она как раз была придумана для решения описанной проблемы перемещения файлов между разным файловыми системами. > Проблему бы решила запись временного файла непосредственно в каталог > с кешем с учетом иерархии levels c последующим переименованием в > оконечное имя. Навроде параметра use_temp_path=inplace > > Подскажите, пожалуйста, как правильнее реализовать общий кэш на > отдельных дисках? > > -- > WBR, > Vadim Lazovskiy > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Maxim Konovalov From maxim на nginx.com Mon Feb 22 18:35:40 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 22 Feb 2016 21:35:40 +0300 Subject: =?UTF-8?B?UmU6INCe0LHRidC40Lkg0LrRjdGIINC90LAg0L3QtdGB0LrQvtC70YzQutC40YUg?= =?UTF-8?B?0LTQuNGB0LrQsNGF?= In-Reply-To: <56CB5479.8030909@nginx.com> References: <56CB5479.8030909@nginx.com> Message-ID: <56CB54FC.8020101@nginx.com> On 2/22/16 9:33 PM, Maxim Konovalov wrote: > On 2/22/16 9:28 PM, Vadim Lazovskiy wrote: >> Здравствуйте. >> >> Имеется, допустим, 16 отдельных дисков. >> Задача сделать общий кэш. >> >> Проще всего указать levels=1, на каждом диске создать по каталогу >> (от 0 до f) и собрать их в симлинками в proxy_cache_path. >> >> При этом возникает проблема со временными файлами. Они создаются вне >> дисков во временных каталогах и из-за этого перемещение файлов >> происходит между файловыми системами, что очень долго и накладно. >> >> Не решает проблему и опция use_temp_path. В данном случае, она >> просто создает еще один временный каталог, но опять не там где нужно. >> > Не совсем ясно, почему не решает проблему use_temp_path=off. Она как раз > была придумана для решения описанной проблемы перемещения файлов между > разным файловыми системами. https://www.nginx.com/blog/nginx-caching-guide/ -- Maxim Konovalov From vadim.lazovskiy на gmail.com Mon Feb 22 18:41:52 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Mon, 22 Feb 2016 21:41:52 +0300 Subject: =?UTF-8?B?UmU6INCe0LHRidC40Lkg0LrRjdGIINC90LAg0L3QtdGB0LrQvtC70YzQutC40YUg?= =?UTF-8?B?0LTQuNGB0LrQsNGF?= In-Reply-To: <56CB54FC.8020101@nginx.com> References: <56CB5479.8030909@nginx.com> <56CB54FC.8020101@nginx.com> Message-ID: Здравствуйте. Спасибо за наводку на split_clients. Похоже, вопрос снят. 22 февраля 2016 г., 21:35 пользователь Maxim Konovalov написал: > On 2/22/16 9:33 PM, Maxim Konovalov wrote: > > On 2/22/16 9:28 PM, Vadim Lazovskiy wrote: > >> Здравствуйте. > >> > >> Имеется, допустим, 16 отдельных дисков. > >> Задача сделать общий кэш. > >> > >> Проще всего указать levels=1, на каждом диске создать по каталогу > >> (от 0 до f) и собрать их в симлинками в proxy_cache_path. > >> > >> При этом возникает проблема со временными файлами. Они создаются вне > >> дисков во временных каталогах и из-за этого перемещение файлов > >> происходит между файловыми системами, что очень долго и накладно. > >> > >> Не решает проблему и опция use_temp_path. В данном случае, она > >> просто создает еще один временный каталог, но опять не там где нужно. > >> > > Не совсем ясно, почему не решает проблему use_temp_path=off. Она как раз > > была придумана для решения описанной проблемы перемещения файлов между > > разным файловыми системами. > > https://www.nginx.com/blog/nginx-caching-guide/ > > -- > Maxim Konovalov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Mon Feb 22 18:57:12 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 22 Feb 2016 21:57:12 +0300 Subject: =?UTF-8?B?UmU6INCe0LHRidC40Lkg0LrRjdGIINC90LAg0L3QtdGB0LrQvtC70YzQutC40YUg?= =?UTF-8?B?0LTQuNGB0LrQsNGF?= In-Reply-To: References: <56CB5479.8030909@nginx.com> <56CB54FC.8020101@nginx.com> Message-ID: <56CB5A08.6040301@nginx.com> On 2/22/16 9:41 PM, Vadim Lazovskiy wrote: > Здравствуйте. > > Спасибо за наводку на split_clients. Похоже, вопрос снят. > Если linux, то вот еще может быть полезным: https://www.nginx.com/blog/thread-pools-boost-performance-9x/ Листать на "Configuring Thread Pools". -- Maxim Konovalov From vadim.lazovskiy на gmail.com Tue Feb 23 08:22:45 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Tue, 23 Feb 2016 11:22:45 +0300 Subject: slice module + thread pools Message-ID: Здравствуйте. Возникает проблема с отдачей данных из кэша при использовании связки slice module + aio treads. Проблема 1 (aio выключено, slice включен): Если запустить скачивание файла через прокси, прервать на середине, а потом запустить заново, закешированная часть отдается медленно (5-8 мегабайт/сек). Ежели докачать файл через прокси до конца, последующие запросы к нему происходят на максимальной скорости (1Gbps в тесте). С чем может быть связана медленная отдача закешированных слайсов? Проблема 2 (aio включено slice включен): Если запустить скачивание файла через прокси, скорость очень низкая, соединение постоянно разрывается. В логах при этом: 2016/02/23 10:36:11 [alert] 11124#11124: task #1 already active 2016/02/23 10:36:12 [alert] 11124#11124: task #4 already active 2016/02/23 10:36:14 [alert] 11124#11124: task #7 already active 2016/02/23 10:36:17 [alert] 11124#11124: task #10 already active 2016/02/23 10:37:59 [alert] 11124#11124: task #23 already active 2016/02/23 10:38:07 [alert] 11124#11124: task #35 already active 2016/02/23 10:38:17 [alert] 11124#11124: task #37 already active Если отключить slice module, все становится хорошо. С чем могут быть связаны данные проблемы? Спасибо. Конфиг: thread_pool pool_ssd01 threads=16; proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:4m use_temp_path=off inactive=7d max_size=230G; split_clients $request_uri $disk { 100% ssd01; } location /streams/ { location ~ ^/streams/(?[^/]+)/(?.*)$ { if ($allowed = 0) { return 403; } slice 10m; aio threads=pool_$disk; proxy_pass http:// $upstream_hostname/$upstream_uri$is_args$args; proxy_set_header Host $upstream_hostname; proxy_set_header Range $slice_range; proxy_ignore_client_abort on; proxy_cache cache_$disk; proxy_cache_key $upstream_hostname$upstream_uri$slice_range; proxy_cache_revalidate on; proxy_cache_bypass $arg_start; proxy_no_cache $arg_start; proxy_cache_lock on; proxy_cache_lock_age 60s; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403; } } # uname -a Linux localhost.localdomain 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux # /usr/sbin/nginx -V nginx version: nginx/1.9.11 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From auskov на neolabs.kz Tue Feb 23 08:33:37 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Tue, 23 Feb 2016 14:33:37 +0600 (ALMT) Subject: =?UTF-8?B?0LzQvtC00YPQu9GMINC90LAg0LfQsNC60LDQtw==?= Message-ID: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> Добрый день, Скажите, пожалуйста, где можно заказать написание модуля? Выполнялет ли такие заказы Nginx Inc.? ~~~ wbr, Alexander Uskov From vadim.lazovskiy на gmail.com Tue Feb 23 09:52:06 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Tue, 23 Feb 2016 12:52:06 +0300 Subject: slice module + thread pools In-Reply-To: References: Message-ID: > > > Проблема 1 (aio выключено, slice включен): > Если запустить скачивание файла через прокси, прервать на середине, а > потом запустить заново, закешированная часть отдается медленно (5-8 > мегабайт/сек). Ежели докачать файл через прокси до конца, последующие > запросы к нему происходят на максимальной скорости (1Gbps в тесте). > > С чем может быть связана медленная отдача закешированных слайсов? > > Уточнение. Апстрим ограничивает скорость отдачи до 1Мбайт/сек. slice module вместо того чтобы быстро собрать имеющиеся в кэше слайсы и отправить их клиенту начинает запрашивать новые (отсутствующие?) у апстрима. Как раз в этот момент и проседает скорость отдачи имеющихся слайсов. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vadim.lazovskiy на gmail.com Tue Feb 23 09:58:10 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Tue, 23 Feb 2016 12:58:10 +0300 Subject: slice module + thread pools In-Reply-To: References: Message-ID: 23 февраля 2016 г., 11:22 пользователь Vadim Lazovskiy < vadim.lazovskiy на gmail.com> написал: > Здравствуйте. > > Возникает проблема с отдачей данных из кэша при использовании связки slice > module + aio treads. > > Проблема 1 (aio выключено, slice включен): > Если запустить скачивание файла через прокси, прервать на середине, а > потом запустить заново, закешированная часть отдается медленно (5-8 > мегабайт/сек). Ежели докачать файл через прокси до конца, последующие > запросы к нему происходят на максимальной скорости (1Gbps в тесте). > > С чем может быть связана медленная отдача закешированных слайсов? > > Уточнение. Апстрим ограничивает скорость отдачи до 1Мбайт/сек. slice module вместо того чтобы быстро собрать имеющиеся в кэше слайсы и отправить их клиенту начинает запрашивать новые (отсутствующие?) у апстрима. Как раз в этот момент и проседает скорость отдачи имеющихся слайсов. -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Tue Feb 23 16:29:20 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Tue, 23 Feb 2016 19:29:20 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> Message-ID: <56CC88E0.8060505@nginx.com> Приветствую. On 2/23/16 11:33 AM, Alexander Uskov wrote: > Добрый день, > > Скажите, пожалуйста, где можно заказать написание модуля? Выполнялет ли такие заказы Nginx Inc.? > Нет, не выполняем. -- Maxim Konovalov From mva на mva.name Tue Feb 23 17:56:38 2016 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Tue, 23 Feb 2016 23:56:38 +0600 Subject: =?UTF-8?B?UmU6IFNJR0FCUlQg0LIg0YHQsNC80L7Qv9C40YHQvdC+0Lwg0LzQvtC00YPQu9C1?= In-Reply-To: <1635848729.55179.1456145914363.JavaMail.zimbra@neolabs.kz> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> <1635848729.55179.1456145914363.JavaMail.zimbra@neolabs.kz> Message-ID: <56CC9D56.7060505@mva.name> Прошу прощения, что отвечаю не на поставленный вопрос, но то, что вы делали отдельным модулем — лично я бы делал скриптом в локейшне используя Lua-модуль (ну, либо встроенный Perl, если кому-то удобнее). А по теме — как помочь отладить "чтобы клиенты не жаловались", кроме как предложением поднять "зеркало", я думаю, не смогу не только я, но и вообще никто. По поводу потенциальных мест, вызывающих double free/corruption — мне кажется, что с большой вероятностью это одна из строк с вхождением ".len" (Думаю, скорее всего, ошибка на единицу. В код, если честно, не вчитывался, да и не видя его целиком - бесполезное это занятие). 22.02.2016 18:58, Alexander Uskov пишет: > Нашел еще вылет. Сильно реже, но с подобной диагностикой вылетает по SIGSEGV. > > ~~~ > wbr, Alexander Uskov > > ----- Пересланное сообщение ----- > От: "Alexander Uskov" > Кому: nginx-devel на nginx.org > Отправленные: Понедельник, 22 Февраль 2016 г 12:22:57 > Тема: SIGABRT в самописном модуле > > Добый день. > > Есть самописный модуль со следующей задачей: > Поймать обращение у url, если есть определенный GET параметр, то отдать файл с диска, поменяв в нем %V на значение параметра, > если нет, то попытаться прочесть значение куки, если нет и его, то сгенерить этот параметр и сделать постоянный редирект на > ?параметр=значение. > > Модуль писал года 2 назад, сам в C сильно плаваю. > Скомпилинное решение сейчас работает в продакшине. > Попытался пересобрать всё на новой машине (пересборка того, что сейчас работает дала такие-же результаты), > появилась проблемма: > *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001ad6180 *** > ======= Backtrace: ========= > /lib64/libc.so.6(+0x7d023)[0x7f19765a8023] > nginx: worker process(ngx_destroy_pool+0x6f)[0x412a7f] > nginx: worker process(ngx_http_free_request+0x108)[0x444438] > nginx: worker process[0x444c49] > nginx: worker process(ngx_http_core_content_phase+0x39)[0x440a29] > nginx: worker process(ngx_http_core_run_phases+0x25)[0x43b2d5] > nginx: worker process(ngx_http_process_request+0xa3)[0x446113] > nginx: worker process[0x446976] > nginx: worker process[0x431dd7] > nginx: worker process(ngx_process_events_and_timers+0x53)[0x42a293] > nginx: worker process[0x42fe41] > nginx: worker process(ngx_spawn_process+0x164)[0x42e854] > nginx: worker process[0x430014] > nginx: worker process(ngx_master_process_cycle+0x1cb)[0x430adb] > nginx: worker process(main+0x826)[0x4106d6] > /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f197654cb15] > nginx: worker process[0x4109f1] > ======= Memory map: ======== > 00400000-004b7000 r-xp 00000000 08:03 8257917 /usr/sbin/nginx > 006b6000-006b7000 r--p 000b6000 08:03 8257917 /usr/sbin/nginx > 006b7000-006ce000 rw-p 000b7000 08:03 8257917 /usr/sbin/nginx > 006ce000-006dd000 rw-p 00000000 00:00 0 > 01aa5000-01b8d000 rw-p 00000000 00:00 0 [heap] > 01b8d000-01bcf000 rw-p 00000000 00:00 0 [heap] > 7f196c000000-7f196c021000 rw-p 00000000 00:00 0 > 7f196c021000-7f1970000000 ---p 00000000 00:00 0 > 7f19723db000-7f19723f0000 r-xp 00000000 08:03 2097154 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > ... > 7f1977e61000-7f1977e62000 rw-p 00000000 00:00 0 > 7ffcbba5a000-7ffcbba7b000 rw-p 00000000 00:00 0 [stack] > 7ffcbbb24000-7ffcbbb26000 r-xp 00000000 00:00 0 [vdso] > ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] > 2016/02/22 12:34:43 [alert] 22924#0: worker process 22925 exited on signal 6 > *** Error in `nginx: worker process': double free or corruption (!prev): 0x0000000001b40cf0 *** > > Вылазит не на все запросы, а только под нагрузкой :( Поэтому дианностировать сильно сложно. > > Насколько смог отдиагностировать, проблема появляется именно в части, когда идет запрос без параметра. > Т-е проблема где-то в следующем участке кода: > > // Проверяю, передано ли что в GET, передано ли GET['c'] и его длинну, если да, ни чего не делаю, иначе - редирект. > if (r->args.len && > ngx_http_arg(r, (u_char *) zero_js_config->get_parm.data, zero_js_config->get_parm.len, &get_c) == NGX_OK && > get_c.len <=14 && > get_c.len>10) { > /* void() */ > } else { > // Отдаем редирект с кукой в GET > > // Пытаемся найти COOKIE['client_cc'] > n = ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &zero_js_config->cookie_name, &cookie); > > // Если кука есть и ее длинна <=14 заносим значение в uniqid иначе генерим php_uniqid() > if (n != NGX_DECLINED && cookie.len<=14) { > ngx_sprintf(uniqid, "%V", &cookie); > } else { > ngx_gettimeofday(&tv); > sec = (int) tv.tv_sec; > usec = (int) (tv.tv_usec % 0x100000); > ngx_sprintf(uniqid, "%i%08xi%05xi", ngx_random() % 10, sec, usec); > } > > // создаем url для редиректа > turl = ngx_pcalloc(r->pool, sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid)); > if (turl == NULL) { > return NGX_HTTP_INTERNAL_SERVER_ERROR; > } > ngx_sprintf(turl, "?%V=%s", &zero_js_config->get_parm, uniqid); > > // Вставляем Location > r->headers_out.location = ngx_list_push(&r->headers_out.headers); > if (r->headers_out.location == NULL) { > return NGX_ERROR; > } > r->headers_out.location->hash = 1; > r->headers_out.location->key.len = sizeof("Location") - 1; > r->headers_out.location->key.data = (u_char *) "Location"; > r->headers_out.location->value.len = sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid); > r->headers_out.location->value.data = turl; > > return NGX_HTTP_MOVED_PERMANENTLY; > // Отдали редирект > } > Что тут может быть не так, что nginx падает с double free or corruption? > > Или посоветуйте, как это можно отладить? Малым трафиком (ab или curl зацикленный) повторить проблему не могу. Большой - порядка 8k запросов в секунду - клиенты жалуются :D > > ~~~ > wbr, Alexander Uskov > > _______________________________________________ > nginx-devel mailing list > nginx-devel на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-devel > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From alex.hha на gmail.com Tue Feb 23 23:45:27 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 24 Feb 2016 01:45:27 +0200 Subject: =?UTF-8?B?0JfQu9C+0YnQsNGB0L3Ri9C5IHRyeV9maWxlcyDQuCBhbGlhcw==?= Message-ID: https://trac.nginx.org/nginx/ticket/97 подскажите, до сих пор нет решения этой проблемы? Есть server { root /vhosts/api.example.net/public_html; location ~ /api/2.0 { alias /vhosts/api.example.net/api/v2.0/public_html; try_files $uri $uri/ /index.php?$query_string; } } при таком конфиге и обращении к /api/1.0 файлы ищутся в /vhosts/ api.example.net/public_html, вместо /vhosts/ api.example.net/api/v2.0/public_html ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From auskov на neolabs.kz Wed Feb 24 04:16:05 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Wed, 24 Feb 2016 10:16:05 +0600 (ALMT) Subject: =?UTF-8?B?UmU6IFNJR0FCUlQg0LIg0YHQsNC80L7Qv9C40YHQvdC+0Lwg0LzQvtC00YPQu9C1?= In-Reply-To: <56CC9D56.7060505@mva.name> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> <1635848729.55179.1456145914363.JavaMail.zimbra@neolabs.kz> <56CC9D56.7060505@mva.name> Message-ID: <18590544.168.1456291391075.JavaMail.al@nlb01lx002> Спасибо за ответ. Эх, не хотелось бы с перлом связываться, избыточен он для такой задачи. Посмотрю в сторону lua. Жаль, что nginScript еще не функциональный совсем. Базовых классов нет :( ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Vadim A. Misbakh-Soloviov" > Кому: nginx-ru на nginx.org > Отправленные: Вторник, 23 Февраль 2016 г 23:56:38 > Тема: Re: SIGABRT в самописном модуле > > Прошу прощения, что отвечаю не на поставленный вопрос, но то, что вы > делали отдельным модулем — лично я бы делал скриптом в локейшне > используя Lua-модуль (ну, либо встроенный Perl, если кому-то > удобнее). > > А по теме — как помочь отладить "чтобы клиенты не жаловались", кроме > как > предложением поднять "зеркало", я думаю, не смогу не только я, но и > вообще никто. > > По поводу потенциальных мест, вызывающих double free/corruption — мне > кажется, что с большой вероятностью это одна из строк с вхождением > ".len" (Думаю, скорее всего, ошибка на единицу. В код, если честно, > не > вчитывался, да и не видя его целиком - бесполезное это занятие). > > > 22.02.2016 18:58, Alexander Uskov пишет: > > Нашел еще вылет. Сильно реже, но с подобной диагностикой вылетает > > по SIGSEGV. > > > > ~~~ > > wbr, Alexander Uskov > > > > ----- Пересланное сообщение ----- > > От: "Alexander Uskov" > > Кому: nginx-devel на nginx.org > > Отправленные: Понедельник, 22 Февраль 2016 г 12:22:57 > > Тема: SIGABRT в самописном модуле > > > > Добый день. > > > > Есть самописный модуль со следующей задачей: > > Поймать обращение у url, если есть определенный GET параметр, то > > отдать файл с диска, поменяв в нем %V на значение параметра, > > если нет, то попытаться прочесть значение куки, если нет и его, то > > сгенерить этот параметр и сделать постоянный редирект на > > ?параметр=значение. > > > > Модуль писал года 2 назад, сам в C сильно плаваю. > > Скомпилинное решение сейчас работает в продакшине. > > Попытался пересобрать всё на новой машине (пересборка того, что > > сейчас работает дала такие-же результаты), > > появилась проблемма: > > *** Error in `nginx: worker process': double free or corruption > > (!prev): 0x0000000001ad6180 *** > > ======= Backtrace: ========= > > /lib64/libc.so.6(+0x7d023)[0x7f19765a8023] > > nginx: worker process(ngx_destroy_pool+0x6f)[0x412a7f] > > nginx: worker process(ngx_http_free_request+0x108)[0x444438] > > nginx: worker process[0x444c49] > > nginx: worker process(ngx_http_core_content_phase+0x39)[0x440a29] > > nginx: worker process(ngx_http_core_run_phases+0x25)[0x43b2d5] > > nginx: worker process(ngx_http_process_request+0xa3)[0x446113] > > nginx: worker process[0x446976] > > nginx: worker process[0x431dd7] > > nginx: worker process(ngx_process_events_and_timers+0x53)[0x42a293] > > nginx: worker process[0x42fe41] > > nginx: worker process(ngx_spawn_process+0x164)[0x42e854] > > nginx: worker process[0x430014] > > nginx: worker process(ngx_master_process_cycle+0x1cb)[0x430adb] > > nginx: worker process(main+0x826)[0x4106d6] > > /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f197654cb15] > > nginx: worker process[0x4109f1] > > ======= Memory map: ======== > > 00400000-004b7000 r-xp 00000000 08:03 8257917 > > /usr/sbin/nginx > > 006b6000-006b7000 r--p 000b6000 08:03 8257917 > > /usr/sbin/nginx > > 006b7000-006ce000 rw-p 000b7000 08:03 8257917 > > /usr/sbin/nginx > > 006ce000-006dd000 rw-p 00000000 00:00 0 > > 01aa5000-01b8d000 rw-p 00000000 00:00 0 > > [heap] > > 01b8d000-01bcf000 rw-p 00000000 00:00 0 > > [heap] > > 7f196c000000-7f196c021000 rw-p 00000000 00:00 0 > > 7f196c021000-7f1970000000 ---p 00000000 00:00 0 > > 7f19723db000-7f19723f0000 r-xp 00000000 08:03 2097154 > > /usr/lib64/libgcc_s-4.8.5-20150702.so.1 > > ... > > 7f1977e61000-7f1977e62000 rw-p 00000000 00:00 0 > > 7ffcbba5a000-7ffcbba7b000 rw-p 00000000 00:00 0 > > [stack] > > 7ffcbbb24000-7ffcbbb26000 r-xp 00000000 00:00 0 > > [vdso] > > ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 > > [vsyscall] > > 2016/02/22 12:34:43 [alert] 22924#0: worker process 22925 exited on > > signal 6 > > *** Error in `nginx: worker process': double free or corruption > > (!prev): 0x0000000001b40cf0 *** > > > > Вылазит не на все запросы, а только под нагрузкой :( Поэтому > > дианностировать сильно сложно. > > > > Насколько смог отдиагностировать, проблема появляется именно в > > части, когда идет запрос без параметра. > > Т-е проблема где-то в следующем участке кода: > > > > // Проверяю, передано ли что в GET, передано ли GET['c'] и его > > длинну, если да, ни чего не делаю, иначе - редирект. > > if (r->args.len && > > ngx_http_arg(r, (u_char *) zero_js_config->get_parm.data, > > zero_js_config->get_parm.len, &get_c) == NGX_OK && > > get_c.len <=14 && > > get_c.len>10) { > > /* void() */ > > } else { > > // Отдаем редирект с кукой в GET > > > > // Пытаемся найти COOKIE['client_cc'] > > n = ngx_http_parse_multi_header_lines(&r->headers_in.cookies, > > &zero_js_config->cookie_name, &cookie); > > > > // Если кука есть и ее длинна <=14 заносим значение в uniqid иначе > > генерим php_uniqid() > > if (n != NGX_DECLINED && cookie.len<=14) { > > ngx_sprintf(uniqid, "%V", &cookie); > > } else { > > ngx_gettimeofday(&tv); > > sec = (int) tv.tv_sec; > > usec = (int) (tv.tv_usec % 0x100000); > > ngx_sprintf(uniqid, "%i%08xi%05xi", ngx_random() % 10, sec, > > usec); > > } > > > > // создаем url для редиректа > > turl = ngx_pcalloc(r->pool, sizeof("?=") - 1 + > > zero_js_config->get_parm.len + sizeof(uniqid)); > > if (turl == NULL) { > > return NGX_HTTP_INTERNAL_SERVER_ERROR; > > } > > ngx_sprintf(turl, "?%V=%s", &zero_js_config->get_parm, uniqid); > > > > // Вставляем Location > > r->headers_out.location = ngx_list_push(&r->headers_out.headers); > > if (r->headers_out.location == NULL) { > > return NGX_ERROR; > > } > > r->headers_out.location->hash = 1; > > r->headers_out.location->key.len = sizeof("Location") - 1; > > r->headers_out.location->key.data = (u_char *) "Location"; > > r->headers_out.location->value.len = sizeof("?=") - 1 + > > zero_js_config->get_parm.len + sizeof(uniqid); > > r->headers_out.location->value.data = turl; > > > > return NGX_HTTP_MOVED_PERMANENTLY; > > // Отдали редирект > > } > > Что тут может быть не так, что nginx падает с double free or > > corruption? > > > > Или посоветуйте, как это можно отладить? Малым трафиком (ab или > > curl зацикленный) повторить проблему не могу. Большой - порядка 8k > > запросов в секунду - клиенты жалуются :D > > > > ~~~ > > wbr, Alexander Uskov > > > > _______________________________________________ > > nginx-devel mailing list > > nginx-devel на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-devel > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на forum.nginx.org Wed Feb 24 06:22:57 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Wed, 24 Feb 2016 01:22:57 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <4526698.ptoqhXMFQe@cybernote> References: <4526698.ptoqhXMFQe@cybernote> Message-ID: <1bb26b879b82ee92c3f95700dde631f8.NginxMailingListRussian@forum.nginx.org> Да, мне надо ИЛИ. Ваш вариант сработал, буду тестировать. Дайте линк, откуда можно понять все про map. что значит 000 0 ? Почему так записывается ? Иван Wrote: ------------------------------------------------------- > В письме от 21 февраля 2016 00:29:35 пользователь IvanMiller написал: > > Любое совпадение. > > > > http { > > map $request:$http_referer:$uri $confirm { > > > "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" 1; > > default 0; > > } > > Уточните, пожалуйста, ЛЮБОЕ совпадение подаразумевает ИЛИ, Вы же > пишете > конструкцию для И. > > То есть логи будут писаться, если > $request ~ ^/mail_confirm/ И $http_referer ~ > /mydomain-e.com/mail_confirm/ И > $uri ~ mail_confirm. > > Попробуйте заменить > map $request:$http_referer:$uri $confirm { > "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" > 1; > default 0; > } > > сначала на > > map $request $req_confirm { > ~/mail_confirm/ 1; > default 0; > } > map $http_referer $ref_confirm { > ~/mydomain-e.com/mail_confirm/ 1; > default 0; > } > map $uri $uri_confirm { > ~mail_confirm 1; > default 0; > } > > далее, если Вам таки нужен И, то > map $req_confirm$ref_confirm$uri_confirm $confirm { > 111 1; > default 0; > } > > Если же хотите ИЛИ, то > map $req_confirm$ref_confirm$uri_confirm $confirm { > default 1; > 000 0; > } > > > > > server { > > > > > if (!-e $request_filename) { > > rewrite ^ /index.php last; > > } > > Здесь и ниже if лучше заменить на > try_files $uri /index.php > > > location /refac { > > if (!-e $request_filename) { > > rewrite ^ /refac/index.php last; > > } > > } > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264743#msg-264743 From nginx на kinetiksoft.com Wed Feb 24 06:40:15 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Wed, 24 Feb 2016 09:40:15 +0300 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <1bb26b879b82ee92c3f95700dde631f8.NginxMailingListRussian@forum.nginx.org> References: <4526698.ptoqhXMFQe@cybernote> <1bb26b879b82ee92c3f95700dde631f8.NginxMailingListRussian@forum.nginx.org> Message-ID: <1668884.yITdd4nxYx@cybernote> nginx.org/r/map/ru 000 0; значит, что $confirm будет ноль, тогда когда значением строчки $req_confirm$ref_confirm$uri_confirm будет 0, а во всех остальных случаях, так как default 1; будет единица, что соотвествует логическому ИЛИ. Вашей ошибкой было то, что map не принимает в качестве первого параметра произвольную подстроку, лишь одну или более переменных. Ну и разделить на отдельные map'ы получается понятнее и сложнее ошибиться в регэкспе. В письме от 24 февраля 2016 01:22:57 пользователь IvanMiller написал: > Да, мне надо ИЛИ. Ваш вариант сработал, буду тестировать. > Дайте линк, откуда можно понять все про map. > что значит 000 0 ? Почему так записывается ? > > Иван Wrote: > ------------------------------------------------------- > > Попробуйте заменить > > map $request:$http_referer:$uri $confirm { > > > > "~^/mail_confirm/:/mydomain-e.com/mail_confirm/:mail_confirm" > > > > 1; > > > > default 0; > > > > } > > > > сначала на > > > > map $request $req_confirm { > > > > ~/mail_confirm/ 1; > > default 0; > > > > } > > map $http_referer $ref_confirm { > > > > ~/mydomain-e.com/mail_confirm/ 1; > > default 0; > > > > } > > map $uri $uri_confirm { > > > > ~mail_confirm 1; > > default 0; > > > > } > > > > далее, если Вам таки нужен И, то > > map $req_confirm$ref_confirm$uri_confirm $confirm { > > > > 111 1; > > default 0; > > > > } > > > > Если же хотите ИЛИ, то > > map $req_confirm$ref_confirm$uri_confirm $confirm { > > > > default 1; > > 000 0; > > > > } > > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From postmaster на softsearch.ru Wed Feb 24 07:14:16 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 24 Feb 2016 10:14:16 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> Message-ID: <639049794.20160224101416@softsearch.ru> Здравствуйте, Alexander. Попробуйте написать его сами на одном из встроенных в nginx языков: Javascript, Perl или Lua. > Скажите, пожалуйста, где можно заказать написание модуля? > Выполнялет ли такие заказы Nginx Inc.? -- С уважением, Михаил mailto:postmaster на softsearch.ru From nginx-forum на forum.nginx.org Wed Feb 24 09:43:42 2016 From: nginx-forum на forum.nginx.org (IvanMiller) Date: Wed, 24 Feb 2016 04:43:42 -0500 Subject: =?UTF-8?B?UmU6INCf0LjRgdCw0YLRjCDQsiDQu9C+0LMg0LTQvtGB0YLRg9C/INC6INC+0L8=?= =?UTF-8?B?0YDQtdC00LXQu9C10L3QvdGL0Lwg0YHRgdGL0LvQutCw0Lw=?= In-Reply-To: <1668884.yITdd4nxYx@cybernote> References: <1668884.yITdd4nxYx@cybernote> Message-ID: Иван, спасибо вам большое за помощь, все получилось ! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264614,264747#msg-264747 From nginx-forum на forum.nginx.org Wed Feb 24 09:45:00 2016 From: nginx-forum на forum.nginx.org (madman) Date: Wed, 24 Feb 2016 04:45:00 -0500 Subject: geoip_isp Message-ID: <4336c2bec942a673e698adc347bbac42.NginxMailingListRussian@forum.nginx.org> Здравствуйте! А в текущем модуле geoip нет поддержки isp базы, только org? Нашел трид https://forum.nginx.org/read.php?21,188488,196961, но в текущем модуле дерективы geoip_isp нет. А отличия между базами все же есть https://dev.maxmind.com/faq/what-is-the-difference-between-the-geoip-isp-and-organization-databases/ Как сейчас можно использовать geoip_isp в nginx? Спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264748,264748#msg-264748 From simplebox66 на gmail.com Wed Feb 24 09:47:51 2016 From: simplebox66 на gmail.com (=?UTF-8?B?0JjQstCw0L0g0JzQuNGI0LjQvQ==?=) Date: Wed, 24 Feb 2016 12:47:51 +0300 Subject: =?UTF-8?B?0J3QtSDRgNCw0LHQvtGC0LDQtdGCIG5naW54INC90LAgT3JhY2xlIExpbnV4IDUu?= =?UTF-8?B?Mg==?= Message-ID: Добрый день, коллеги. Установил nginx 1.8.0 отсюда http://nginx.org/packages/rhel/5/x86_64/RPMS/ на Oracle Linux 5.2 (kernel-2.6.18-92), но nginx запускался только мастер процесс, а веркеры падали, в логах 2016/02/23 15:52:47 [emerg] 5169#0: eventfd() failed (38: Function not implemented) 2016/02/23 15:52:47 [alert] 5168#0: worker process 5169 exited with fatal code 2 and cannot be respawned При этом конфиг использовал коробочный, ничего не менял. Далее установил версию 1.8.1, веркеры стали подниматься и ошибка 2016/02/23 15:52:47 [alert] 5168#0: worker process 5169 exited with fatal code 2 and cannot be respawned пропала и nginx отдавал дефолтную страницу, но вторая ошибка 2016/02/23 15:52:47 [emerg] 5169#0: eventfd() failed (38: Function not implemented) так и осталась. Тут https://forum.nginx.org/read.php?2,150853,150858#msg-150858 говорится о том что необходимо собрать из исходников без aio, но я не хочу использовать самосбор, хочется использовать готовый пакет из реп nginx. Как быть? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vbart на nginx.com Wed Feb 24 11:33:19 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 24 Feb 2016 14:33:19 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBuZ2lueCDQvdCwIE9yYWNsZSBMaW51?= =?UTF-8?B?eCA1LjI=?= In-Reply-To: References: Message-ID: <1490647.eWrBxpOoY6@vbart-laptop> On Wednesday 24 February 2016 12:47:51 Иван Мишин wrote: > Добрый день, коллеги. > Установил nginx 1.8.0 отсюда http://nginx.org/packages/rhel/5/x86_64/RPMS/ > на Oracle Linux 5.2 (kernel-2.6.18-92), но nginx запускался только мастер > процесс, а веркеры падали, в логах > > 2016/02/23 15:52:47 [emerg] 5169#0: eventfd() failed (38: Function not > implemented) > 2016/02/23 15:52:47 [alert] 5168#0: worker process 5169 exited with fatal > code 2 and cannot be respawned > > При этом конфиг использовал коробочный, ничего не менял. > > Далее установил версию 1.8.1, веркеры стали подниматься и ошибка 2016/02/23 > 15:52:47 [alert] 5168#0: worker process 5169 exited with fatal code 2 and > cannot be respawned пропала и nginx отдавал дефолтную страницу, но вторая > ошибка 2016/02/23 15:52:47 [emerg] 5169#0: eventfd() failed (38: Function > not implemented) так и осталась. > > Тут https://forum.nginx.org/read.php?2,150853,150858#msg-150858 говорится о > том что необходимо собрать из исходников без aio, но я не хочу использовать > самосбор, хочется использовать готовый пакет из реп nginx. > > Как быть? Игнорировать ошибку. -- Валентин Бартенев From gmm на csdoc.com Wed Feb 24 11:33:05 2016 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 24 Feb 2016 13:33:05 +0200 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBuZ2lueCDQvdCwIE9yYWNsZSBMaW51?= =?UTF-8?B?eCA1LjI=?= In-Reply-To: References: Message-ID: <56CD94F1.70704@csdoc.com> On 24.02.2016 11:47, Иван Мишин wrote: > Oracle Linux 5.2 (kernel-2.6.18-92) Это очень старая система, уже есть CentOS release 5.11 с ядром 2.6.18-408.el5 - там должно быть все нормально. > хочется использовать готовый пакет из реп nginx. > > Как быть? Обновить систему до 5.11 или 6.7 или 7.2 -- Best regards, Gena From arut на nginx.com Wed Feb 24 11:33:24 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Wed, 24 Feb 2016 14:33:24 +0300 Subject: slice module + thread pools In-Reply-To: References: Message-ID: <20160224113324.GE13730@Romans-MacBook-Air.local> Здравствуйте Вадим, On Tue, Feb 23, 2016 at 11:22:45AM +0300, Vadim Lazovskiy wrote: > Здравствуйте. > > Возникает проблема с отдачей данных из кэша при использовании связки slice > module + aio treads. > > Проблема 1 (aio выключено, slice включен): > Если запустить скачивание файла через прокси, прервать на середине, а потом > запустить заново, закешированная часть отдается медленно (5-8 > мегабайт/сек). Ежели докачать файл через прокси до конца, последующие > запросы к нему происходят на максимальной скорости (1Gbps в тесте). Зскешированная часть должна отдаваться быстро. Убедитесь, что она действительно закеширована и попробуйте скачать только закешированные слайсы при помощи Range-запросов. > С чем может быть связана медленная отдача закешированных слайсов? > > Проблема 2 (aio включено slice включен): > Если запустить скачивание файла через прокси, скорость очень низкая, > соединение постоянно разрывается. В логах при этом: > 2016/02/23 10:36:11 [alert] 11124#11124: task #1 already active > 2016/02/23 10:36:12 [alert] 11124#11124: task #4 already active > 2016/02/23 10:36:14 [alert] 11124#11124: task #7 already active > 2016/02/23 10:36:17 [alert] 11124#11124: task #10 already active > 2016/02/23 10:37:59 [alert] 11124#11124: task #23 already active > 2016/02/23 10:38:07 [alert] 11124#11124: task #35 already active > 2016/02/23 10:38:17 [alert] 11124#11124: task #37 already active > > Если отключить slice module, все становится хорошо. > > С чем могут быть связаны данные проблемы? > > Спасибо. > > > Конфиг: > > thread_pool pool_ssd01 threads=16; > > proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:4m > use_temp_path=off inactive=7d max_size=230G; > > split_clients $request_uri $disk { > 100% ssd01; > } > > location /streams/ { > location ~ > ^/streams/(?[^/]+)/(?.*)$ { > if ($allowed = 0) { > return 403; > } > > slice 10m; > > aio threads=pool_$disk; > > proxy_pass http:// > $upstream_hostname/$upstream_uri$is_args$args; > proxy_set_header Host $upstream_hostname; > proxy_set_header Range $slice_range; > proxy_ignore_client_abort on; > > proxy_cache cache_$disk; > proxy_cache_key > $upstream_hostname$upstream_uri$slice_range; > proxy_cache_revalidate on; > > proxy_cache_bypass $arg_start; > proxy_no_cache $arg_start; > > proxy_cache_lock on; > proxy_cache_lock_age 60s; > > proxy_cache_use_stale error timeout invalid_header > updating http_500 http_502 http_503 http_504 http_403; > } > } > > > # uname -a > Linux localhost.localdomain 3.16.0-4-amd64 #1 SMP Debian > 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux > > # /usr/sbin/nginx -V > nginx version: nginx/1.9.11 > built by gcc 4.9.2 (Debian 4.9.2-10) > built with OpenSSL 1.0.1k 8 Jan 2015 > TLS SNI support enabled > configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx > --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf > --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid > --lock-path=/var/run/nginx.lock > --http-client-body-temp-path=/var/cache/nginx/client_temp > --http-proxy-temp-path=/var/cache/nginx/proxy_temp > --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp > --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp > --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx > --with-http_ssl_module --with-http_realip_module > --with-http_addition_module --with-http_sub_module --with-http_dav_module > --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module > --with-http_gzip_static_module --with-http_random_index_module > --with-http_secure_link_module --with-http_stub_status_module > --with-http_auth_request_module --with-threads --with-stream > --with-stream_ssl_module --with-http_slice_module --with-mail > --with-mail_ssl_module --with-file-aio --with-http_v2_module > --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat > -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' > --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 > > > -- > WBR, > Vadim Lazovskiy > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Roman Arutyunyan From mdounin на mdounin.ru Wed Feb 24 12:48:41 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 24 Feb 2016 15:48:41 +0300 Subject: =?UTF-8?B?UmU6IEZ3ZDogU0lHQUJSVCDQsiDRgdCw0LzQvtC/0LjRgdC90L7QvCDQvNC+0LQ=?= =?UTF-8?B?0YPQu9C1?= In-Reply-To: <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> Message-ID: <20160224124841.GC31796@mdounin.ru> Hello! On Mon, Feb 22, 2016 at 12:25:42PM +0600, Alexander Uskov wrote: [...] > Есть самописный модуль со следующей задачей: > Поймать обращение у url, если есть определенный GET параметр, то отдать файл с диска, поменяв в нем %V на значение параметра, > если нет, то попытаться прочесть значение куки, если нет и его, то сгенерить этот параметр и сделать постоянный редирект на > ?параметр=значение. > > Модуль писал года 2 назад, сам в C сильно плаваю. > Скомпилинное решение сейчас работает в продакшине. > Попытался пересобрать всё на новой машине (пересборка того, что сейчас работает дала такие-же результаты), > появилась проблемма: [...] > Вылазит не на все запросы, а только под нагрузкой :( Поэтому дианностировать сильно сложно. > > Насколько смог отдиагностировать, проблема появляется именно в части, когда идет запрос без параметра. > Т-е проблема где-то в следующем участке кода: > > // Проверяю, передано ли что в GET, передано ли GET['c'] и его длинну, если да, ни чего не делаю, иначе - редирект. > if (r->args.len && > ngx_http_arg(r, (u_char *) zero_js_config->get_parm.data, zero_js_config->get_parm.len, &get_c) == NGX_OK && > get_c.len <=14 && > get_c.len>10) { > /* void() */ > } else { > // Отдаем редирект с кукой в GET > > // Пытаемся найти COOKIE['client_cc'] > n = ngx_http_parse_multi_header_lines(&r->headers_in.cookies, &zero_js_config->cookie_name, &cookie); > > // Если кука есть и ее длинна <=14 заносим значение в uniqid иначе генерим php_uniqid() > if (n != NGX_DECLINED && cookie.len<=14) { > ngx_sprintf(uniqid, "%V", &cookie); При этом переменная uniqid как инициализируется? Потому что ngx_sprintf() в общем случае строку не терминирует нулём, и если uniqid просто объявлен как массив символов на стеке - \0 в конце никто не обещал. > } else { > ngx_gettimeofday(&tv); > sec = (int) tv.tv_sec; > usec = (int) (tv.tv_usec % 0x100000); > ngx_sprintf(uniqid, "%i%08xi%05xi", ngx_random() % 10, sec, usec); И то же самое тут. > } > > // создаем url для редиректа > turl = ngx_pcalloc(r->pool, sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid)); > if (turl == NULL) { > return NGX_HTTP_INTERNAL_SERVER_ERROR; > } > ngx_sprintf(turl, "?%V=%s", &zero_js_config->get_parm, uniqid); А вот тут вы печатаете uniqid как %s, т.е. как null-terminated строку. Соответственно если \0 в конце не будет - будут проблемы. > // Вставляем Location > r->headers_out.location = ngx_list_push(&r->headers_out.headers); > if (r->headers_out.location == NULL) { > return NGX_ERROR; > } > r->headers_out.location->hash = 1; > r->headers_out.location->key.len = sizeof("Location") - 1; > r->headers_out.location->key.data = (u_char *) "Location"; > r->headers_out.location->value.len = sizeof("?=") - 1 + zero_js_config->get_parm.len + sizeof(uniqid); > r->headers_out.location->value.data = turl; Кроме того, вот тут используется sizeof(uniqid) вместо реальной длины содержимого uniqid. Соответственно в выводе может быть не всё либо дополнительный мусор. Совет: используйте для строк ngx_str_t, с явным указанием длины содержимого. Обе проблемы должны исчезнуть сами по себе. [...] -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Wed Feb 24 13:12:09 2016 From: nginx-forum на forum.nginx.org (ErmakovIE) Date: Wed, 24 Feb 2016 08:12:09 -0500 Subject: =?UTF-8?B?Tmdpbngg0L3QtSDQv9GA0L7Qv9GD0YHQutCw0LXRgiDQvtGCIHByb3h5INC00Ls=?= =?UTF-8?B?0LjQvdC90YvQuSBDb250ZW50LURpc3Bvc2l0aW9u?= Message-ID: <3ec9dc23c50b17b5b23286367438553b.NginxMailingListRussian@forum.nginx.org> Здравствуйте, уважаемые участники форума! Столкнулись со следующей проблемой. Приложение генерирует заголовок Content-Disposition и X-Accel-Redirect. При превышении для длинных имен файлов определённой длины значения заголовка (256 символов) Nginx перестает пропускать этот заголовок к клиенту, а отдает в качестве Content-Disposition внутренний путь из X-Accel-Redirect. Не можем понять, где настраивается этот лимит. Пробовали large_client_header_buffers (хотя они, по идее, на входящие от клиента), proxy_buffer_size, proxy_buffering, proxy_buffers. Не помогает.... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264758,264758#msg-264758 From mdounin на mdounin.ru Wed Feb 24 13:12:54 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 24 Feb 2016 16:12:54 +0300 Subject: =?UTF-8?B?UmU6INCX0LvQvtGJ0LDRgdC90YvQuSB0cnlfZmlsZXMg0LggYWxpYXM=?= In-Reply-To: References: Message-ID: <20160224131253.GE31796@mdounin.ru> Hello! On Wed, Feb 24, 2016 at 01:45:27AM +0200, Alex Domoradov wrote: > https://trac.nginx.org/nginx/ticket/97 > > подскажите, до сих пор нет решения этой проблемы? Проблемы из этого тикета, не являющиеся дискуссионными, в современных версиях nginx'а решены. По опыту - если вы пришли к выводу, что ваши проблемы из-за этого тикета, то скорее всего вы просто перемудрили в конфиге. > Есть > > server { > root /vhosts/api.example.net/public_html; > > location ~ /api/2.0 { > alias /vhosts/api.example.net/api/v2.0/public_html; > try_files $uri $uri/ /index.php?$query_string; > } > } > > при таком конфиге и обращении к /api/1.0 файлы ищутся в /vhosts/ > api.example.net/public_html, вместо /vhosts/ > api.example.net/api/v2.0/public_html При обращении к /api/1.0 они и должны искаться от root'а сервера, т.к. location'а для /api/1.0 у вас не описано. При обращении к /api/2.0, вероятно, происходнить будет не то, что вы хотели, т.к. в location'е, заданном с помощью регулярного выражения, alias определяет полный путь к файлу, а try_files к этому пути добавляет фрагменты. Вам, вероятно, надо убрать "~" из location'а, сделав его обычным префиксным, и всё заработает так, как хотелось. -- Maxim Dounin http://nginx.org/ From alex.hha на gmail.com Wed Feb 24 13:22:59 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 24 Feb 2016 15:22:59 +0200 Subject: =?UTF-8?B?UmU6INCX0LvQvtGJ0LDRgdC90YvQuSB0cnlfZmlsZXMg0LggYWxpYXM=?= In-Reply-To: <20160224131253.GE31796@mdounin.ru> References: <20160224131253.GE31796@mdounin.ru> Message-ID: Добрый день, да там просто очепятка. Конечно же везде /api/v2.0/. Постараюсь вечером описать более подробно. Я его конечно упростил. Там еще есть fastcgi и $document_root. Возможно я ошибаюсь в проблеме. Но большинство ссылок с stackoverflow вели на этот тикет Особенно порадовала http://stackoverflow.com/questions/20426812/nginx-try-files-alias-directives а точнее коментарии https://s3.amazonaws.com/scrstorage/hsc3i16q062w58e071.png ;) 2016-02-24 15:12 GMT+02:00 Maxim Dounin : > Hello! > > On Wed, Feb 24, 2016 at 01:45:27AM +0200, Alex Domoradov wrote: > > > https://trac.nginx.org/nginx/ticket/97 > > > > подскажите, до сих пор нет решения этой проблемы? > > Проблемы из этого тикета, не являющиеся дискуссионными, в > современных версиях nginx'а решены. По опыту - если вы пришли к > выводу, что ваши проблемы из-за этого тикета, то скорее всего вы > просто перемудрили в конфиге. > > > Есть > > > > server { > > root /vhosts/api.example.net/public_html; > > > > location ~ /api/2.0 { > > alias /vhosts/api.example.net/api/v2.0/public_html; > > try_files $uri $uri/ /index.php?$query_string; > > } > > } > > > > при таком конфиге и обращении к /api/1.0 файлы ищутся в /vhosts/ > > api.example.net/public_html, вместо /vhosts/ > > api.example.net/api/v2.0/public_html > > При обращении к /api/1.0 они и должны искаться от root'а сервера, > т.к. location'а для /api/1.0 у вас не описано. > > При обращении к /api/2.0, вероятно, происходнить будет не то, что > вы хотели, т.к. в location'е, заданном с помощью регулярного > выражения, alias определяет полный путь к файлу, а try_files к > этому пути добавляет фрагменты. Вам, вероятно, надо убрать "~" из > location'а, сделав его обычным префиксным, и всё заработает так, > как хотелось. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Wed Feb 24 13:56:13 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 24 Feb 2016 18:56:13 +0500 Subject: geoip_isp In-Reply-To: <4336c2bec942a673e698adc347bbac42.NginxMailingListRussian@forum.nginx.org> References: <4336c2bec942a673e698adc347bbac42.NginxMailingListRussian@forum.nginx.org> Message-ID: а расскажите примерный сценарий использования geo isp ? 24 февраля 2016 г., 14:45 пользователь madman написал: > Здравствуйте! > > А в текущем модуле geoip нет поддержки isp базы, только org? > > Нашел трид https://forum.nginx.org/read.php?21,188488,196961, но в текущем > модуле дерективы geoip_isp нет. > > А отличия между базами все же есть > > https://dev.maxmind.com/faq/what-is-the-difference-between-the-geoip-isp-and-organization-databases/ > > Как сейчас можно использовать geoip_isp в nginx? > > Спасибо. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264748,264748#msg-264748 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From ek на nginx.com Wed Feb 24 14:14:49 2016 From: ek на nginx.com (Ekaterina Kukushkina) Date: Wed, 24 Feb 2016 17:14:49 +0300 Subject: geoip_isp In-Reply-To: <4336c2bec942a673e698adc347bbac42.NginxMailingListRussian@forum.nginx.org> References: <4336c2bec942a673e698adc347bbac42.NginxMailingListRussian@forum.nginx.org> Message-ID: <6425DCE2-78ED-4CEA-8052-2B6DF2D50D28@nginx.com> Здравствуйте. > On 24 Feb 2016, at 12:45, madman wrote: > > А в текущем модуле geoip нет поддержки isp базы, только org? Есть. Обе базы поддерживаются через geoip_org > > Нашел трид https://forum.nginx.org/read.php?21,188488,196961, но в текущем > модуле дерективы geoip_isp нет. > > А отличия между базами все же есть > https://dev.maxmind.com/faq/what-is-the-difference-between-the-geoip-isp-and-organization-databases/ Отличия баз в содержимом полей (либо провайдер, либо название организации), но никак не в структуре > > Как сейчас можно использовать geoip_isp в nginx? Подключить ISP базу через 'geoip_org /path/to/isp.file;' и получать провайдера через $geoip_org -- wbr, Ekaterina Kukushkina From nginx-forum на forum.nginx.org Wed Feb 24 14:14:57 2016 From: nginx-forum на forum.nginx.org (madman) Date: Wed, 24 Feb 2016 09:14:57 -0500 Subject: geoip_isp In-Reply-To: References: Message-ID: <182597e45a9e280e5e819afdbd0ae73b.NginxMailingListRussian@forum.nginx.org> приходит запрос в рекламную сетку, где нужно в зависимости от ISP отобразить конкретный баннер Илья Шипицин Wrote: ------------------------------------------------------- > а расскажите примерный сценарий использования geo isp ? > > 24 февраля 2016 г., 14:45 пользователь madman > > написал: > > > Здравствуйте! > > > > А в текущем модуле geoip нет поддержки isp базы, только org? > > > > Нашел трид https://forum.nginx.org/read.php?21,188488,196961, но в > текущем > > модуле дерективы geoip_isp нет. > > > > А отличия между базами все же есть > > > > > https://dev.maxmind.com/faq/what-is-the-difference-between-the-geoip-i > sp-and-organization-databases/ > > > > Как сейчас можно использовать geoip_isp в nginx? > > > > Спасибо. > > > > Posted at Nginx Forum: > > https://forum.nginx.org/read.php?21,264748,264748#msg-264748 > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264748,264762#msg-264762 From mdounin на mdounin.ru Wed Feb 24 14:32:39 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 24 Feb 2016 17:32:39 +0300 Subject: =?UTF-8?B?UmU6INCX0LvQvtGJ0LDRgdC90YvQuSB0cnlfZmlsZXMg0LggYWxpYXM=?= In-Reply-To: References: <20160224131253.GE31796@mdounin.ru> Message-ID: <20160224143239.GI31796@mdounin.ru> Hello! On Wed, Feb 24, 2016 at 03:22:59PM +0200, Alex Domoradov wrote: > Добрый день, да там просто очепятка. Конечно же везде /api/v2.0/. > Постараюсь вечером описать более подробно. Я его конечно упростил. Там еще > есть fastcgi и $document_root. Возможно я ошибаюсь в проблеме. Ну вот простое решение вашей проблемы - использовать префиксный location вместо регулярного выражения. > Но большинство ссылок с stackoverflow вели на этот тикет > > Особенно порадовала > http://stackoverflow.com/questions/20426812/nginx-try-files-alias-directives Этот конкретно вопрос - про вот этот случай из тикета: # bug: request to "/test/x" will fallback to "fallback" # instead of "/test/fallback" location /test/ { alias /tmp/; try_files $uri /test/fallback?$args; } он не имеет к вашей проблеме ни малейшего отношения, и workaround элементарен. Что отдельно характерно - исходный конфиг в вопросе не имеет смысла, с тем же успехом там вместо fallback'а можно прописать =404. > а точнее коментарии > > https://s3.amazonaws.com/scrstorage/hsc3i16q062w58e071.png > > ;) Комментарии прекрасны, да. И характерны, опять же, своей некорректностью - этот баг я создал лично всего 4 года назад, а кто-то уже насчитал 6 лет. Теперь, видимо, придётся ещё пару лет не править. ;) -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Wed Feb 24 15:11:07 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 24 Feb 2016 18:11:07 +0300 Subject: nginx-1.9.12 Message-ID: <20160224151106.GL31796@mdounin.ru> Изменения в nginx 1.9.12 24.02.2016 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2. Спасибо Владу Краснову. *) Добавление: директива worker_cpu_affinity теперь поддерживает более 64 процессоров. *) Исправление: совместимость со сторонними модулями на C++; ошибка появилась в 1.9.11. Спасибо Piotr Sikora. *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка появилась в 1.9.11. *) Исправление: директива "add_header ... always" с пустым значением не удаляла из заголовков ошибочных ответов строки Last-Modified и ETag. *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться сообщения "called a function you should not call" и "shutdown while in init". *) Исправление: ошибочные заголовки могли логгироваться некорректно. *) Исправление: утечки сокетов при использовании HTTP/2. *) Исправление: в модуле ngx_http_v2_module. -- Maxim Dounin http://nginx.org/ From vbart на nginx.com Wed Feb 24 15:22:28 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 24 Feb 2016 18:22:28 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <7a9b612a6bf6ca5e64bf542dace6ad5e.NginxMailingListRussian@forum.nginx.org> References: <7a9b612a6bf6ca5e64bf542dace6ad5e.NginxMailingListRussian@forum.nginx.org> Message-ID: <1675786.AotOx8V98E@vbart-workstation> On Monday 22 February 2016 13:20:52 mikhal123 wrote: > Vasiliy P. Melnik Wrote: > ------------------------------------------------------- > > может просто попробовать понять что он делает ? там конечно не сильно > > красиво, но > > > > strace -p 21312 > > вот эти шесть строчек, повторяющиеся бесконечное количество раз (за 30 > секунд генерится файл с ними размером 200 мб) > > epoll_ctl(18, EPOLL_CTL_MOD, 11, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, > {u32=1467215760, u64=139725343289232}}) = 0 > epoll_wait(18, {{EPOLLOUT, {u32=1467215760, u64=139725343289232}}}, 512, > 500) = 1 > epoll_ctl(18, EPOLL_CTL_MOD, 11, {EPOLLIN|EPOLLRDHUP|EPOLLET, > {u32=1467215760, u64=139725343289232}}) = 0 > futex(0x746234, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x746230, {FUTEX_OP_SET, 0, > FUTEX_OP_CMP_GT, 1}) = 1 > futex(0x7461f0, FUTEX_WAKE_PRIVATE, 1) = 1 > epoll_wait(18, {{EPOLLIN, {u32=7338688, u64=7338688}}}, 512, 500) = 1 > Хотелось бы увидеть конфигурацию и дебаг лог. Как включить дебаг описано здесь: http://nginx.org/ru/docs/debugging_log.html -- Валентин Бартенев From nginx-forum на forum.nginx.org Wed Feb 24 16:25:10 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Wed, 24 Feb 2016 11:25:10 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <1675786.AotOx8V98E@vbart-workstation> References: <1675786.AotOx8V98E@vbart-workstation> Message-ID: Валентин Бартенев Wrote: > Хотелось бы увидеть конфигурацию и дебаг лог. > > Как включить дебаг описано здесь: > http://nginx.org/ru/docs/debugging_log.html Конфигурация: http://pastebin.com/sh9fXExi Дебаг лог предоставить сложно, так как ошибка возникает в случайный момент времени, и в ожидании на нормально нагруженном рабочем сервере nginx помимо процессорного времени сожрет еще и все место на диске :) (его там не особо много) Также, касаемо обновления с dotdeb 1.8.0 до официальной сборки 1.9.11: 1) данная ошибка не исчезла, но за два дня возникла всего 3 раза 2) что еще более отрадно - если раньше рабочий процесс nginx бесконечно грузил систему до того, как его вручную не перезапустить, то по-крайней мере на текущий момент он сам где-то за 10-15 минут успешно выходит из цикла график за последнюю неделю http://s019.radikal.ru/i615/1602/92/e70cd8f56c06.png - nginx грузил систему пока я это случайно не заметил и не перезапустил - три небольших пика с 22 по 24 - это уже после обновления график за сутки (всего одна ошибка) http://s020.radikal.ru/i704/1602/27/c470731d0f4e.png правильно ли я понимаю, что тут проблема в гонках? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264777#msg-264777 From vbart на nginx.com Wed Feb 24 16:45:31 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 24 Feb 2016 19:45:31 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <1675786.AotOx8V98E@vbart-workstation> Message-ID: <5947982.CHJPS6G2fV@vbart-workstation> On Wednesday 24 February 2016 11:25:10 mikhal123 wrote: > Валентин Бартенев Wrote: > > > Хотелось бы увидеть конфигурацию и дебаг лог. > > > > Как включить дебаг описано здесь: > > http://nginx.org/ru/docs/debugging_log.html > > Конфигурация: http://pastebin.com/sh9fXExi > Дебаг лог предоставить сложно, так как ошибка возникает в случайный момент > времени, и в ожидании на нормально нагруженном рабочем сервере nginx помимо > процессорного времени сожрет еще и все место на диске :) (его там не особо > много) Можно настроить дебаг лог в памяти: http://nginx.org/ru/docs/debugging_log.html#memory > > Также, касаемо обновления с dotdeb 1.8.0 до официальной сборки 1.9.11: > 1) данная ошибка не исчезла, но за два дня возникла всего 3 раза > 2) что еще более отрадно - если раньше рабочий процесс nginx бесконечно > грузил систему до того, как его вручную не перезапустить, то по-крайней мере > на текущий момент он сам где-то за 10-15 минут успешно выходит из цикла > > график за последнюю неделю > http://s019.radikal.ru/i615/1602/92/e70cd8f56c06.png > - nginx грузил систему пока я это случайно не заметил и не перезапустил > - три небольших пика с 22 по 24 - это уже после обновления > > график за сутки (всего одна ошибка) > http://s020.radikal.ru/i704/1602/27/c470731d0f4e.png > > > правильно ли я понимаю, что тут проблема в гонках? > Проблема скорее всего связана с вот этим: timer_resolution 25ms; -- Валентин Бартенев From nginx-forum на forum.nginx.org Wed Feb 24 17:15:22 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Wed, 24 Feb 2016 12:15:22 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <5947982.CHJPS6G2fV@vbart-workstation> References: <5947982.CHJPS6G2fV@vbart-workstation> Message-ID: <4961bd80dd5a5d8d104758f078960526.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Wrote: > Проблема скорее всего связана с вот этим: > > timer_resolution 25ms; Хм... эта директива у меня в конфиге точно более 5 лет (а скорее всего значительно больше) и прошла через кучу версий nginx и Debian, а проблемы начались только после перехода на последний Debian Хорошо, отключил пока, посмотрим на обстановку Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264783#msg-264783 From mva на mva.name Wed Feb 24 18:11:08 2016 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Thu, 25 Feb 2016 00:11:08 +0600 Subject: nginx-1.9.12 In-Reply-To: <20160224151106.GL31796@mdounin.ru> References: <20160224151106.GL31796@mdounin.ru> Message-ID: <56CDF23C.9050909@mva.name> 24.02.2016 21:11, Maxim Dounin пишет: > *) Исправление: в модуле ngx_http_v2_module. > А вот когда пишется что-то в подобной форулировке (только "исправление", без конкретики) это значит, что что-то секретное? :) From postmaster на softsearch.ru Wed Feb 24 18:11:50 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 24 Feb 2016 21:11:50 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <5947982.CHJPS6G2fV@vbart-workstation> References: <1675786.AotOx8V98E@vbart-workstation> <5947982.CHJPS6G2fV@vbart-workstation> Message-ID: <1322598054.20160224211150@softsearch.ru> Здравствуйте, Валентин. > Можно настроить дебаг лог в памяти: > http://nginx.org/ru/docs/debugging_log.html#memory Предполагается, что как-то автоматически будет отлавливаться искомое событие и после этого дёргаться gdb-скрипт? -- С уважением, Михаил mailto:postmaster на softsearch.ru From postmaster на softsearch.ru Wed Feb 24 18:16:40 2016 From: postmaster на softsearch.ru (=?utf-8?B?0JzQuNGF0LDQuNC7INCc0L7QvdCw0YjRkdCy?=) Date: Wed, 24 Feb 2016 21:16:40 +0300 Subject: nginx-1.9.12 In-Reply-To: <56CDF23C.9050909@mva.name> References: <20160224151106.GL31796@mdounin.ru> <56CDF23C.9050909@mva.name> Message-ID: <1159755911.20160224211640@softsearch.ru> Здравствуйте, Vadim. >> *) Исправление: в модуле ngx_http_v2_module. >> > А вот когда пишется что-то в подобной форулировке (только "исправление", > без конкретики) это значит, что что-то секретное? :) http://hg.nginx.org/nginx/ -- С уважением, Михаил mailto:postmaster на softsearch.ru From maxim на nginx.com Wed Feb 24 18:18:00 2016 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 24 Feb 2016 21:18:00 +0300 Subject: nginx-1.9.12 In-Reply-To: <56CDF23C.9050909@mva.name> References: <20160224151106.GL31796@mdounin.ru> <56CDF23C.9050909@mva.name> Message-ID: <56CDF3D8.2040207@nginx.com> On 2/24/16 9:11 PM, Vadim A. Misbakh-Soloviov wrote: > 24.02.2016 21:11, Maxim Dounin пишет: >> *) Исправление: в модуле ngx_http_v2_module. >> > А вот когда пишется что-то в подобной форулировке (только "исправление", > без конкретики) это значит, что что-то секретное? :) > У нас секретов нет: http://hg.nginx.org/nginx/ http://mailman.nginx.org/pipermail/nginx-devel/2016-February/thread.html -- Maxim Konovalov From vbart на nginx.com Wed Feb 24 18:18:51 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 24 Feb 2016 21:18:51 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <1322598054.20160224211150@softsearch.ru> References: <1675786.AotOx8V98E@vbart-workstation> <5947982.CHJPS6G2fV@vbart-workstation> <1322598054.20160224211150@softsearch.ru> Message-ID: <4471063.lEbry8dtmV@vbart-workstation> On Wednesday 24 February 2016 21:11:50 Михаил Монашёв wrote: > Здравствуйте, Валентин. > > > Можно настроить дебаг лог в памяти: > > http://nginx.org/ru/docs/debugging_log.html#memory > > > Предполагается, что как-то автоматически будет отлавливаться искомое событие и после > этого дёргаться gdb-скрипт? > Если человек сам лично наблюдал, как они зацикливались. К тому же до этого была информация, что зацикливаются они навечно, то достаточно подключиться к процессу и вытащить из него дебаг лог в момент зацикливания. -- Валентин Бартенев From vbart на nginx.com Wed Feb 24 18:22:35 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 24 Feb 2016 21:22:35 +0300 Subject: nginx-1.9.12 In-Reply-To: <56CDF23C.9050909@mva.name> References: <20160224151106.GL31796@mdounin.ru> <56CDF23C.9050909@mva.name> Message-ID: <13488381.EyENM8aILf@vbart-workstation> On Thursday 25 February 2016 00:11:08 Vadim A. Misbakh-Soloviov wrote: > 24.02.2016 21:11, Maxim Dounin пишет: > > *) Исправление: в модуле ngx_http_v2_module. > > > А вот когда пишется что-то в подобной форулировке (только "исправление", > без конкретики) это значит, что что-то секретное? :) > Обычно это означает, что детальное описание всех исправлений в формулировках, понятных неискушенному читателю, не укладывается в рамках принятого формата лога изменений. -- Валентин Бартенев From sb на nginx.com Wed Feb 24 19:08:51 2016 From: sb на nginx.com (Sergey Budnevitch) Date: Wed, 24 Feb 2016 22:08:51 +0300 Subject: =?UTF-8?B?0L/QsNC60LXRgtGLINGBINC00LjQvdCw0LzQuNGH0LXRgdC60LjQvNC4INC80L4=?= =?UTF-8?B?0LTRg9C70Y/QvNC4INC00LvRjyDRgtC10YHRgtC40YDQvtCy0LDQvdC40Y8=?= Message-ID: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> Добрый день. Раньше мы собирали nginx со всеми модулями, которые не требовали дополнительных библиотек, чтобы не добавлять лишние зависимости. С динамическими модулями можно вынести подобные модули в отдельные пакеты, таким образом дополнительные зависимости будут только у тех пакетов, для которых они необходимы. Для версии 1.9.12 мы собрали пакеты с модулями xslt, image-filter и geoip. Установить, например, image-filter можно на RHEL/CentOS командой: % yum install nginx-module-image-filter или на Ubuntu/Debian: % apt-get install nginx-module-image-filter затем для загрузки модуля необходимо добавить в nginx.conf директиву: load_module modules/ngx_http_image_filter_module.so; Пожалуйста, потестируйте новые пакеты с динамическими модулями и дайте знать об ошибках, если таковые будут. From mva на mva.name Wed Feb 24 19:39:51 2016 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Thu, 25 Feb 2016 01:39:51 +0600 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> Message-ID: <56CE0707.2090500@mva.name> Кстати, про динамические модули. Насколько я понял их текущую реализацию в NgX, для их сборки всё равно нужны распакованные исходники самого NgingX, в том сосотоянии, из которого собран бинарник. Т.е. не полуится просто взять и скомпилировать модуль в .so, используя только хидеры, а потом подсунуть его NginX'у в директорию с shared-модулями и тот его успешно загрузит. Или я ошибаюсь? 25.02.2016 01:08, Sergey Budnevitch пишет: > Добрый день. > > Раньше мы собирали nginx со всеми модулями, которые не требовали дополнительных > библиотек, чтобы не добавлять лишние зависимости. С динамическими модулями > можно вынести подобные модули в отдельные пакеты, таким образом дополнительные > зависимости будут только у тех пакетов, для которых они необходимы. > > Для версии 1.9.12 мы собрали пакеты с модулями xslt, image-filter и geoip. > Установить, например, image-filter можно на RHEL/CentOS командой: > > % yum install nginx-module-image-filter > > или на Ubuntu/Debian: > > % apt-get install nginx-module-image-filter > > затем для загрузки модуля необходимо добавить в nginx.conf директиву: > > load_module modules/ngx_http_image_filter_module.so; > > Пожалуйста, потестируйте новые пакеты с динамическими модулями и дайте знать > об ошибках, если таковые будут. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на forum.nginx.org Wed Feb 24 18:57:23 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Wed, 24 Feb 2016 13:57:23 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <4471063.lEbry8dtmV@vbart-workstation> References: <4471063.lEbry8dtmV@vbart-workstation> Message-ID: Валентин Бартенев Wrote: > Если человек сам лично наблюдал, как они зацикливались. К тому же до > этого > была информация, что зацикливаются они навечно, то достаточно > подключиться к > процессу и вытащить из него дебаг лог в момент зацикливания. ради развития лучшего в мире сервера на выходных постараюсь откатиться на 1.8 и словить устойчивую ошибку с логами :) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264793#msg-264793 From sb на nginx.com Wed Feb 24 22:00:03 2016 From: sb на nginx.com (Sergey Budnevitch) Date: Thu, 25 Feb 2016 01:00:03 +0300 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <56CE0707.2090500@mva.name> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> <56CE0707.2090500@mva.name> Message-ID: > On 24 Feb 2016, at 22:39, Vadim A. Misbakh-Soloviov wrote: > > Кстати, про динамические модули. > > Насколько я понял их текущую реализацию в NgX, для их сборки всё равно > нужны распакованные исходники самого NgingX, в том сосотоянии, из > которого собран бинарник. Да. То же состояние - это исходники + пара файлов. Аналога apxs сейчас нет. > Т.е. не полуится просто взять и скомпилировать модуль в .so, используя > только хидеры, а потом подсунуть его NginX'у в директорию с > shared-модулями и тот его успешно загрузит. > > Или я ошибаюсь? > > > 25.02.2016 01:08, Sergey Budnevitch пишет: >> Добрый день. >> >> Раньше мы собирали nginx со всеми модулями, которые не требовали дополнительных >> библиотек, чтобы не добавлять лишние зависимости. С динамическими модулями >> можно вынести подобные модули в отдельные пакеты, таким образом дополнительные >> зависимости будут только у тех пакетов, для которых они необходимы. >> >> Для версии 1.9.12 мы собрали пакеты с модулями xslt, image-filter и geoip. >> Установить, например, image-filter можно на RHEL/CentOS командой: >> >> % yum install nginx-module-image-filter >> >> или на Ubuntu/Debian: >> >> % apt-get install nginx-module-image-filter >> >> затем для загрузки модуля необходимо добавить в nginx.conf директиву: >> >> load_module modules/ngx_http_image_filter_module.so; >> >> Пожалуйста, потестируйте новые пакеты с динамическими модулями и дайте знать >> об ошибках, если таковые будут. >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart на nginx.com Wed Feb 24 22:10:46 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 25 Feb 2016 01:10:46 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L/RgNC+0L/Rg9GB0LrQsNC10YIg0L7RgiBwcm94eSA=?= =?UTF-8?B?0LTQu9C40L3QvdGL0LkgQ29udGVudC1EaXNwb3NpdGlvbg==?= In-Reply-To: <3ec9dc23c50b17b5b23286367438553b.NginxMailingListRussian@forum.nginx.org> References: <3ec9dc23c50b17b5b23286367438553b.NginxMailingListRussian@forum.nginx.org> Message-ID: <7631006.3kvbQP3ysh@vbart-laptop> On Wednesday 24 February 2016 08:12:09 ErmakovIE wrote: > Здравствуйте, уважаемые участники форума! > > Столкнулись со следующей проблемой. > > Приложение генерирует заголовок Content-Disposition и X-Accel-Redirect. При > превышении для длинных имен файлов определённой длины значения заголовка > (256 символов) Nginx перестает пропускать этот заголовок к клиенту, а отдает > в качестве Content-Disposition внутренний путь из X-Accel-Redirect. > > Не можем понять, где настраивается этот лимит. > Пробовали large_client_header_buffers (хотя они, по идее, на входящие от > клиента), > proxy_buffer_size, proxy_buffering, proxy_buffers. > > Не помогает.... > Так делать nginx не умеет. Вы не указали ни версии, ни конфигурации, ничего, что позволило бы хоть как-то диагностировать проблему. Как выглядит ответ от приложения? Дебаг лог в помощь: http://nginx.org/ru/docs/debugging_log.html -- Валентин Бартенев From nginx-forum на forum.nginx.org Wed Feb 24 22:23:22 2016 From: nginx-forum на forum.nginx.org (vitcool) Date: Wed, 24 Feb 2016 17:23:22 -0500 Subject: =?UTF-8?B?0JLQvtC/0YDQvtGBINC/0YDQviBwcm94eSBzdG9yZQ==?= Message-ID: <84b487038423af98205fbd8709d5346a.NginxMailingListRussian@forum.nginx.org> Всем Доброго времени суток! Правильно ли я понимаю, что использование proxy_store в location (который тянет статику с другого сервера), позволит создать локальную актуальную локальную копию этой самой статики ? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264801,264801#msg-264801 From oleg на mamontov.net Wed Feb 24 22:29:34 2016 From: oleg на mamontov.net (Oleg A. Mamontov) Date: Thu, 25 Feb 2016 01:29:34 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9GA0L4gcHJveHkgc3RvcmU=?= In-Reply-To: <84b487038423af98205fbd8709d5346a.NginxMailingListRussian@forum.nginx.org> References: <84b487038423af98205fbd8709d5346a.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160224222934.GB85115@xenon.mamontov.net> On Wed, Feb 24, 2016 at 05:23:22PM -0500, vitcool wrote: > Всем Доброго времени суток! > > Правильно ли я понимаю, что использование proxy_store в location (который > тянет статику с другого сервера), > позволит создать локальную актуальную локальную копию этой самой статики ? Да, но актуальную на момент времени проксирования. Отслеживаться изменения статики не будут. > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264801,264801#msg-264801 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cheers, Oleg A. Mamontov mailto: oleg на mamontov.net skype: lonerr11 cell: +7 (903) 798-1352 From mdounin на mdounin.ru Wed Feb 24 23:54:56 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 25 Feb 2016 02:54:56 +0300 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <56CE0707.2090500@mva.name> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> <56CE0707.2090500@mva.name> Message-ID: <20160224235456.GQ31796@mdounin.ru> Hello! On Thu, Feb 25, 2016 at 01:39:51AM +0600, Vadim A. Misbakh-Soloviov wrote: > Кстати, про динамические модули. > > Насколько я понял их текущую реализацию в NgX, для их сборки всё равно > нужны распакованные исходники самого NgingX, в том сосотоянии, из > которого собран бинарник. > > Т.е. не полуится просто взять и скомпилировать модуль в .so, используя > только хидеры, а потом подсунуть его NginX'у в директорию с > shared-модулями и тот его успешно загрузит. > > Или я ошибаюсь? Вы пытаетесь сэкономить на распаковке исходников nginx'а? А зачем? -- Maxim Dounin http://nginx.org/ From konstantin на symbi.org Thu Feb 25 03:11:13 2016 From: konstantin на symbi.org (Konstantin Baryshnikov) Date: Thu, 25 Feb 2016 06:11:13 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> Message-ID: <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> > On Feb 23, 2016, at 11:33 AM, Alexander Uskov wrote: > > Добрый день, > > Скажите, пожалуйста, где можно заказать написание модуля? Выполнялет ли такие заказы Nginx Inc.? Александр, опишите вашу задачу. По опыту, когда заходит речь о разработке модуля, после полной и корректной формулировки задачи в подавляющем большинстве случаев оказывается, что собственный модуль писать вовсе не обязательно, и вполне достаточно стандартных модулей и/или небольшого скриптинга на том же lua. From auskov на neolabs.kz Thu Feb 25 04:48:27 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Thu, 25 Feb 2016 10:48:27 +0600 (ALMT) Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <639049794.20160224101416@softsearch.ru> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <639049794.20160224101416@softsearch.ru> Message-ID: <14297693.362.1456375677433.JavaMail.al@nlb01lx002> Добрый день. Попробую Lua, так как яваскрипт пока нефункционален (нет класса Math), а тащить такой тяжелый комбаин как перл ради сильно не большой функциональности, мне кажется излишним. ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Михаил Монашёв" > Кому: "Alexander Uskov" > Отправленные: Среда, 24 Февраль 2016 г 13:14:16 > Тема: Re: модуль на заказ > > Здравствуйте, Alexander. > > Попробуйте написать его сами на одном из встроенных в nginx языков: > Javascript, Perl или Lua. From auskov на neolabs.kz Thu Feb 25 05:01:22 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Thu, 25 Feb 2016 11:01:22 +0600 (ALMT) Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> Message-ID: <5492068.369.1456376447739.JavaMail.al@nlb01lx002> Добрый день. Должен работать по следующумо алгоритму: При запросе к указанному локейшину должен проверять, есть ли в запросе указанный параметр, длинной не больше N, если да, то читать с диска (общей памяти) файл, заменять в нем строковую константу на значение переданного параметра, выставить заголовки (експайред, контекст тайп и т.п.). Если в запросе нет параметра или его длинна больше N, пытаться из куки считать данные (проверить на длинну N), если их нет, то сгенерить уникальную строку по алгоритму из php uniqid и сделать мувед перманентли на свой же url, но с передачей в качестве параметра полученных данных. В принципе практически все делается с использованием основной логики nginx, хидерс и ssi модулей, но проблемма именно с генерением php uniqid. Можно, конечно попытаться перейти на тот-же userid модуль, но тогда придется много что менять в бакэнде, который дальше будет это обрабатывать, чего бы сильно не хотелось. ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Konstantin Baryshnikov" > Кому: nginx-ru на nginx.org > Отправленные: Четверг, 25 Февраль 2016 г 9:11:13 > Тема: Re: модуль на заказ > > > > On Feb 23, 2016, at 11:33 AM, Alexander Uskov > > wrote: > > > > Добрый день, > > > > Скажите, пожалуйста, где можно заказать написание модуля? > > Выполнялет ли такие заказы Nginx Inc.? > > Александр, опишите вашу задачу. По опыту, когда заходит речь о > разработке модуля, после полной и корректной формулировки задачи в > подавляющем большинстве случаев оказывается, что собственный модуль > писать вовсе не обязательно, и вполне достаточно стандартных модулей > и/или небольшого скриптинга на том же lua. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From chipitsine на gmail.com Thu Feb 25 06:46:03 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Thu, 25 Feb 2016 11:46:03 +0500 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <5492068.369.1456376447739.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> <5492068.369.1456376447739.JavaMail.al@nlb01lx002> Message-ID: возможно вместо перманент вам подойдет X-Accel-Redirect, удобная штука, пользуемся 25 февраля 2016 г., 10:01 пользователь Alexander Uskov написал: > Добрый день. > > Должен работать по следующумо алгоритму: > При запросе к указанному локейшину должен проверять, есть ли в запросе > указанный параметр, длинной не больше N, > если да, то читать с диска (общей памяти) файл, заменять в нем строковую > константу на значение > переданного параметра, выставить заголовки (експайред, контекст тайп и > т.п.). > Если в запросе нет параметра или его длинна больше N, пытаться из куки > считать данные (проверить на длинну N), > если их нет, то сгенерить уникальную строку по алгоритму из php uniqid и > сделать мувед перманентли на > свой же url, но с передачей в качестве параметра полученных данных. > > В принципе практически все делается с использованием основной логики > nginx, хидерс и ssi модулей, но проблемма > именно с генерением php uniqid. Можно, конечно попытаться перейти на > тот-же userid модуль, но тогда придется > много что менять в бакэнде, который дальше будет это обрабатывать, чего бы > сильно не хотелось. > > ~~~ > wbr, Alexander Uskov > > ----- Исходное сообщение ----- > > От: "Konstantin Baryshnikov" > > Кому: nginx-ru на nginx.org > > Отправленные: Четверг, 25 Февраль 2016 г 9:11:13 > > Тема: Re: модуль на заказ > > > > > > > On Feb 23, 2016, at 11:33 AM, Alexander Uskov > > > wrote: > > > > > > Добрый день, > > > > > > Скажите, пожалуйста, где можно заказать написание модуля? > > > Выполнялет ли такие заказы Nginx Inc.? > > > > Александр, опишите вашу задачу. По опыту, когда заходит речь о > > разработке модуля, после полной и корректной формулировки задачи в > > подавляющем большинстве случаев оказывается, что собственный модуль > > писать вовсе не обязательно, и вполне достаточно стандартных модулей > > и/или небольшого скриптинга на том же lua. > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From igor на sysoev.ru Thu Feb 25 07:35:39 2016 From: igor на sysoev.ru (Igor Sysoev) Date: Thu, 25 Feb 2016 10:35:39 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <14297693.362.1456375677433.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <639049794.20160224101416@softsearch.ru> <14297693.362.1456375677433.JavaMail.al@nlb01lx002> Message-ID: <02462616-EE06-4145-B15A-B719965245DD@sysoev.ru> On 25 Feb 2016, at 07:48, Alexander Uskov wrote: > Попробую Lua, так как яваскрипт пока нефункционален (нет класса Math), А что нужно в Math? -- Igor Sysoev http://nginx.com From nginx-forum на forum.nginx.org Thu Feb 25 08:41:28 2016 From: nginx-forum на forum.nginx.org (5lava) Date: Thu, 25 Feb 2016 03:41:28 -0500 Subject: =?UTF-8?B?0J/QsNGA0LAg0LrQvtC80LzQtdC90YLQsNGA0LjQtdCyINC+INC00LjRgNC10Lo=?= =?UTF-8?B?0YLQuNCy0LUgZXhwaXJlcw==?= Message-ID: Доброго дня. 1. Директива expires создает два хедера — Expires и Cache-Control. Однако, я бы хотел также добавить другие параметры Cache-Control, например, "public" или "no-store". Сделав это через обычный add_header, на выходе я получу два хедера Cache-Control: в одном "max-age" (созданный директивой expires), в другом "public" (созданный директивой add_header), вместо одного "max-age=..., public". Нет, это не катастрофа, но налицо неэффективное использование bandwidth. Возможные варианты решения: а) опционально мержить значения всех хедеров Cache-Control в один хедер; б) примерживать результат работы expires (max-age или no-cache) к ранним add_header Cache-Control, если таковые были; в) добавить в expires третий параметр, в котором пользователь мог бы указать дополнительные опции Cache-Control (имхо самый адекватный вариант). 2. expires max это max-age на 10 лет и Expires на 2037 год. Однако RFC 2616 (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) гласит: To mark a response as "never expires," an origin server sends an Expires date approximately one year from the time the response is sent. HTTP/1.1 servers SHOULD NOT send Expires dates more than one year in the future. Да, should not это не must not, да и через каких-то 20 с лишним лет вопрос отпадёт сам собой, но всё же. Гугл, кстати, тоже рекомендует максимум год (https://developers.google.com/speed/docs/insights/LeverageBrowserCaching): We recommend a minimum cache time of one week and preferably up to one year for static assets, or assets that change infrequently. Спасибо за внимание. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264815,264815#msg-264815 From auskov на neolabs.kz Thu Feb 25 08:52:07 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Thu, 25 Feb 2016 14:52:07 +0600 (ALMT) Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <02462616-EE06-4145-B15A-B719965245DD@sysoev.ru> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <639049794.20160224101416@softsearch.ru> <14297693.362.1456375677433.JavaMail.al@nlb01lx002> <02462616-EE06-4145-B15A-B719965245DD@sysoev.ru> Message-ID: <2082527.517.1456390293586.JavaMail.al@nlb01lx002> Как минимум random и floor. А вообще реализация нужной мне ф-ции на js - https://gist.github.com/larchanka/7080820/ ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Igor Sysoev" > Кому: nginx-ru на nginx.org > Отправленные: Четверг, 25 Февраль 2016 г 13:35:39 > Тема: Re: модуль на заказ > > On 25 Feb 2016, at 07:48, Alexander Uskov wrote: > > > Попробую Lua, так как яваскрипт пока нефункционален (нет класса > > Math), > > А что нужно в Math? > > > -- > Igor Sysoev > http://nginx.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From uncleandyv на gmail.com Thu Feb 25 09:12:23 2016 From: uncleandyv на gmail.com (Andrey Velikoredchanin) Date: Thu, 25 Feb 2016 12:12:23 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <2082527.517.1456390293586.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <639049794.20160224101416@softsearch.ru> <14297693.362.1456375677433.JavaMail.al@nlb01lx002> <02462616-EE06-4145-B15A-B719965245DD@sysoev.ru> <2082527.517.1456390293586.JavaMail.al@nlb01lx002> Message-ID: Присоединяюсь к советующему X-Accel-Redirect. Тоже рекомендую. И надежнее и функциональнее. 25 февраля 2016 г., 11:52 пользователь Alexander Uskov написал: > Как минимум random и floor. > > А вообще реализация нужной мне ф-ции на js - > https://gist.github.com/larchanka/7080820/ > > ~~~ > wbr, Alexander Uskov > > ----- Исходное сообщение ----- > > От: "Igor Sysoev" > > Кому: nginx-ru на nginx.org > > Отправленные: Четверг, 25 Февраль 2016 г 13:35:39 > > Тема: Re: модуль на заказ > > > > On 25 Feb 2016, at 07:48, Alexander Uskov wrote: > > > > > Попробую Lua, так как яваскрипт пока нефункционален (нет класса > > > Math), > > > > А что нужно в Math? > > > > > > -- > > Igor Sysoev > > http://nginx.com > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -------------- next part -------------- An HTML attachment was scrubbed... URL: From vadim.lazovskiy на gmail.com Thu Feb 25 10:02:13 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 13:02:13 +0300 Subject: =?UTF-8?B?c2xpY2UgbW9kdWxlINC4IHByb3h5X2NhY2hlX21pbl91c2VzINCx0L7Qu9GM0Yg=?= =?UTF-8?B?0LUg0LXQtNC40L3QuNGG0Ysu?= Message-ID: Здравтсвуйте. Наткнулся на непонятную проблему при попытке увеличить proxy_cache_min_uses в связке co slice module. При proxy_cache_min_uses 1 все работает корректно. Имеется фронтенд на nginx 1.9.11 который проксирует и кеширует видео с нескольких апстримов. Используется slice module. Видео проигрывается спомощью video.js При попытке увеличить proxy_cache_min_uses возникают проблемы с перемоткой: Запрос №1: Плеер начинает играть видео. Все штатно. https://drive.google.com/file/d/0B5-OwnlywJGhY2Rla2RTaVlsd1k/view Запрос №2: Перематываем на произвольную позицию. Браузер делает range-запрос, а получает 200 и полный Content-Length https://drive.google.com/file/d/0B5-OwnlywJGhOWZtMTdCYlQ3Z1k/view Фрагмент debug-лога: 2016/02/25 12:16:23 [debug] 17567#17567: *10 accept: 10.0.1.1:55552 fd:16 2016/02/25 12:16:23 [debug] 17567#17567: *10 event timer add: 16: 60000:1456391843913 2016/02/25 12:16:23 [debug] 17567#17567: *10 reusable connection: 1 2016/02/25 12:16:23 [debug] 17567#17567: *10 epoll add event: fd:16 op:1 ev:80002001 2016/02/25 12:16:23 [debug] 17567#17567: *10 post event 00007FBC2167F0D0 2016/02/25 12:16:23 [debug] 17567#17567: *10 delete posted event 00007FBC2167F0D0 2016/02/25 12:16:23 [debug] 17567#17567: *10 http wait request handler 2016/02/25 12:16:23 [debug] 17567#17567: *10 malloc: 0000000000C357B0:1024 2016/02/25 12:16:23 [debug] 17567#17567: *10 recv: fd:16 1009 of 1024 2016/02/25 12:16:23 [debug] 17567#17567: *10 reusable connection: 0 2016/02/25 12:16:23 [debug] 17567#17567: *10 posix_memalign: 0000000000C35BC0:4096 @16 2016/02/25 12:16:23 [debug] 17567#17567: *10 http process request line 2016/02/25 12:16:23 [debug] 17567#17567: *10 http request line: "GET /streams/s1.example.com/0/aa7786d88a1529d6ba636e345415b220.mp4 HTTP/1.1" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http uri: "/streams/ s1.example.com/0/aa7786d88a1529d6ba636e345415b220.mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http args: "" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http exten: "mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 posix_memalign: 0000000000C280C0:4096 @16 2016/02/25 12:16:23 [debug] 17567#17567: *10 http process request header line 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Host: cache.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Connection: keep-alive" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Accept-Encoding: identity;q=1, *;q=0" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Accept: */*" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,bg;q=0.2" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Cookie: 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "Range: bytes=696653667-1993091904" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header: "If-Range: Sun, 07 Feb 2016 12:46:26 GMT" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http header done 2016/02/25 12:16:23 [debug] 17567#17567: *10 event timer del: 16: 1456391843913 2016/02/25 12:16:23 [debug] 17567#17567: *10 generic phase: 0 2016/02/25 12:16:23 [debug] 17567#17567: *10 rewrite phase: 1 2016/02/25 12:16:23 [debug] 17567#17567: *10 test location: "/streams/" 2016/02/25 12:16:23 [debug] 17567#17567: *10 test location: ~ "^/streams/(?[^/]+)/(?.*)$" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http regex set $upstream_hostname to "s1.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http regex set $upstream_uri to "0/aa7786d88a1529d6ba636e345415b220.mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 using configuration "^/streams/(?[^/]+)/(?.*)$" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http cl:-1 max:1048576 2016/02/25 12:16:23 [debug] 17567#17567: *10 rewrite phase: 3 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var 2016/02/25 12:16:23 [debug] 17567#17567: *10 http map started 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: " s1.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http map: "s1.example.com" "1" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "1" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script value: "0" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script equal 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script equal: no 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script if 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script if: false 2016/02/25 12:16:23 [debug] 17567#17567: *10 post rewrite phase: 4 2016/02/25 12:16:23 [debug] 17567#17567: *10 generic phase: 5 2016/02/25 12:16:23 [debug] 17567#17567: *10 generic phase: 6 2016/02/25 12:16:23 [debug] 17567#17567: *10 generic phase: 7 2016/02/25 12:16:23 [debug] 17567#17567: *10 access phase: 8 2016/02/25 12:16:23 [debug] 17567#17567: *10 access: D52B000A FFFFFFFF D52B000A 2016/02/25 12:16:23 [debug] 17567#17567: *10 access phase: 9 2016/02/25 12:16:23 [debug] 17567#17567: *10 access phase: 10 2016/02/25 12:16:23 [debug] 17567#17567: *10 post access phase: 11 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "http://" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: " s1.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "/" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "0/aa7786d88a1529d6ba636e345415b220.mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http init upstream, client timer: 0 2016/02/25 12:16:23 [debug] 17567#17567: *10 epoll add event: fd:16 op:3 ev:80002005 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "/streams/ s1.example.com/0/aa7786d88a1529d6ba636e345415b220.mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http split: 1335405152 4294967295 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "cache_" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "ssd01" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: " s1.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "0/aa7786d88a1529d6ba636e345415b220.mp4" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "bytes=0-5242879" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http cache key: "s1.example.com0/aa7786d88a1529d6ba636e345415b220.mp4bytes=0-5242879" 2016/02/25 12:16:23 [debug] 17567#17567: *10 add cleanup: 0000000000C36B98 2016/02/25 12:16:23 [debug] 17567#17567: *10 http file cache exists: -2 e:0 2016/02/25 12:16:23 [debug] 17567#17567: *10 http upstream cache: 8 2016/02/25 12:16:23 [debug] 17567#17567: *10 posix_memalign: 0000000000C290D0:4096 @16 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "Host: " 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: " s1.example.com" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: " " 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "Range: " 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script var: "bytes=0-5242879" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: " " 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "Connection: close " 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "" 2016/02/25 12:16:23 [debug] 17567#17567: *10 http script copy: "" Конфиг: proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:4m use_temp_path=off inactive=7d max_size=230G; split_clients $request_uri $disk { 100% ssd01; } location /streams/ { location ~ ^/streams/(?[^/]+)/(?.*)$ { if ($allowed = 0) { return 403; } slice 5m; proxy_pass http:// $upstream_hostname/$upstream_uri$is_args$args; proxy_set_header Host $upstream_hostname; proxy_set_header Range $slice_range; proxy_ignore_client_abort on; proxy_cache cache_$disk; proxy_cache_key $upstream_hostname$upstream_uri$slice_range; proxy_cache_revalidate on; proxy_cache_bypass $arg_start; proxy_no_cache $arg_start; proxy_cache_lock on; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403; } } # uname -a Linux localhost.localdomain 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux # /usr/sbin/nginx -V nginx version: nginx/1.9.11 built by gcc 4.9.2 (Debian 4.9.2-10) built with OpenSSL 1.0.1k 8 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=%{_libdir}/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 Спасибо. -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From auskov на neolabs.kz Thu Feb 25 10:47:53 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Thu, 25 Feb 2016 16:47:53 +0600 (ALMT) Subject: =?UTF-8?B?UmU6IFNJR0FCUlQg0LIg0YHQsNC80L7Qv9C40YHQvdC+0Lwg0LzQvtC00YPQu9C1?= In-Reply-To: <20160224124841.GC31796@mdounin.ru> References: <13994212.5891.1456126206997.JavaMail.al@nlb01lx002> <27240854.5892.1456126373240.JavaMail.al@nlb01lx002> <20160224124841.GC31796@mdounin.ru> Message-ID: <25532035.534.1456397241231.JavaMail.al@nlb01lx002> Максим, это оно самое! Спасибо огромное! ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Maxim Dounin" > Кому: nginx-ru на nginx.org > Отправленные: Среда, 24 Февраль 2016 г 18:48:41 > Тема: Re: Fwd: SIGABRT в самописном модуле > > Совет: используйте для строк ngx_str_t, с явным указанием длины > содержимого. Обе проблемы должны исчезнуть сами по себе. From vadim.lazovskiy на gmail.com Thu Feb 25 10:52:56 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 13:52:56 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: Message-ID: > > > Запрос №2: > Перематываем на произвольную позицию. Браузер делает range-запрос, а > получает 200 и полный Content-Length > https://drive.google.com/file/d/0B5-OwnlywJGhOWZtMTdCYlQ3Z1k/view > > > Дело в If-Range. curl-ом без него все хорошо. Но связи с proxy_cache_min_uses я не улавливаю. -------------- next part -------------- An HTML attachment was scrubbed... URL: From arut на nginx.com Thu Feb 25 13:53:33 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Thu, 25 Feb 2016 16:53:33 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: Message-ID: <20160225135333.GC7810@Romans-MacBook-Air.local> On Thu, Feb 25, 2016 at 01:02:13PM +0300, Vadim Lazovskiy wrote: > Здравтсвуйте. > > Наткнулся на непонятную проблему при попытке увеличить proxy_cache_min_uses > в связке co slice module. При proxy_cache_min_uses 1 все работает корректно. > > Имеется фронтенд на nginx 1.9.11 который проксирует и кеширует видео с > нескольких апстримов. Используется slice module. Видео проигрывается > спомощью video.js При попытке увеличить proxy_cache_min_uses возникают > проблемы с перемоткой: > > Запрос №1: > Плеер начинает играть видео. Все штатно. > https://drive.google.com/file/d/0B5-OwnlywJGhY2Rla2RTaVlsd1k/view > > Запрос №2: > Перематываем на произвольную позицию. Браузер делает range-запрос, а > получает 200 и полный Content-Length > https://drive.google.com/file/d/0B5-OwnlywJGhOWZtMTdCYlQ3Z1k/view > > Фрагмент debug-лога: Маловат фрагмент. Хотелось бы посмотреть на весь запрос и подзапросы. [..] -- Roman Arutyunyan From nginx-forum на forum.nginx.org Thu Feb 25 15:17:20 2016 From: nginx-forum на forum.nginx.org (vitcool) Date: Thu, 25 Feb 2016 10:17:20 -0500 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9GA0L4gcHJveHkgc3RvcmU=?= In-Reply-To: <20160224222934.GB85115@xenon.mamontov.net> References: <20160224222934.GB85115@xenon.mamontov.net> Message-ID: <8a8f6c77a424e1a5a4df6079af269160.NginxMailingListRussian@forum.nginx.org> А поженить proxy_store и proxy_cache нельзя? :) например: если нет в proxy_cache, то искать в alias у proxy_store, и если там нет то тогда идти к proxy_pass бекенду на поклон? Наверное выглядит немного бредово, но это отчасти решает проблему бекапа статики которая изначально появляется на бекенде Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264801,264830#msg-264830 From nginx на kinetiksoft.com Thu Feb 25 15:19:04 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Thu, 25 Feb 2016 18:19:04 +0300 Subject: =?UTF-8?Q?Re=3A_zero_size_buf_in_output_=D0=BF=D1=80=D0=B8_proxy_cache?= In-Reply-To: <20160216200457.GV34421@mdounin.ru> References: <20160216200457.GV34421@mdounin.ru> Message-ID: <1665194.4NCDIQP41P@cybernote> Максим, здравствуйте! Можем ли мы еще что-то сделать для решения этой проблемы? С уважением, Иван. В письме от 16 февраля 2016 23:04:57 пользователь Maxim Dounin написал: > Hello! > > On Tue, Feb 16, 2016 at 02:00:33PM -0500, iprok wrote: > > Здравствуйте! > > > > На видеостриминговой системе используем два уровня проксей (эджи и > > ориджины). Эджи проксируют клиентов на ориджины, ориджины проксируют эджи > > на сервера-источники видео. Видео отдается в формате HLS: это плейлисты > > (текстовые файлы) и чанки видео (видео-файлы в формате ts). > > > > В локейшенах, проксирующих чанки, на ориджинах и эджах регулярно, хоть и > > относительно не часто (пара десятков за сутки), проскакивают ошибки "zero > > > > size buf in output". Мне кажется причиной является одна из директив: > > proxy_cache_use_stale updating; > > proxy_cache_lock on; > > > > так как до их появления таких ошибок не было. > > > > nginx в основном 1.8.1, но проявиляется так же и на 1.9.11, логи ниже > > делал > > на последней. Используем пакеты для debian8 из репозитория на nginx.org. > > > > Если смотреть access.log, то чанк в помент проявления этой ошибки отдается > > частично, но с кодом 200 (размер в логе меньше реального размера), при > > следующем запросе отдается нормально, и ошибка не проявляется. > > > > Лог кратко (debug.log внизу, здесь и далее в логах вырезана приватная > > информация, так как ошибка вопроизводится только в продакшене): > > > > 2016/02/14 11:09:20 [alert] 30161#30161: *1388932 zero size buf in output > > t:0 r:0 f:0 0000000002387520 0000000002387520-0000000002389356 > > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: > > e6.mysite.com, request: "GET /place1/stream/cam13_low-5743015560.ts > > HTTP/1.1", upstream: > > "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host: > > "e6.mysite.com", referrer: "https://mysite.com/" > > 2016/02/14 11:09:23 [alert] 30160#30160: *1389653 zero size buf in output > > t:0 r:0 f:0 00000000022BBC50 00000000022BBC50-00000000022BF185 > > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server: > > e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts > > HTTP/1.1", upstream: > > "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host: > > "e6.mysite.com", referrer: "https://mysite.com/" > > [...] > > > Сразу выкладываю debug.log (18 мегабайт в распакованном виде): > > https://kinetiksoft.com/thecloud/index.php/s/5ldvsZFiC2NjpXJ > > Я обрезал только 10 секунд, за которые произошли две ошибки из краткого > > лога в начале сообщения. > > Судя по логам, проблема возникает тогда, когда клиент закрывает > соединение до получения ответа целиком. В обоих случаях перед > alert'ом про "zero size buf" в логах видно такое: > > 2016/02/14 11:09:20 [info] 30161#30161: *1388932 epoll_wait() reported that > client prematurely closed connection (32: Broken pipe) while reading > upstream, client: HIDDENIPV4, server: e6.mysite.com, request: "GET > /place1/stream/cam13_low-5743015560.ts HTTP/1.1", upstream: > "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host: > "e6.mysite.com", referrer: "https://mysite.com/" 2016/02/14 11:09:23 [info] > 30160#30160: *1389653 epoll_wait() reported that client prematurely closed > connection while reading upstream, client: HIDDENIPV4, server: > e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts > HTTP/1.1", upstream: > "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host: > "e6.mysite.com", referrer: "https://mysite.com/" > > В этом случае nginx продолжает загружать файл с бекенда в кеш, а > после окончания загрузки - пытается отправить последний буфер. И, > видимо, где-то вместе с этим буфером проталкивает в цепочке > фильтров что-то, что ранее счёл свободным (из-за ошибки записи > клиенту), но по факту оно застряло где-то в цепочке фильтров. > > Что именно там происходит и как это поправить - надо смотреть > подробнее. Для начала было бы неплохо убедиться, что сторонних > модулей не используется, а если используются - то проверить, > воспроизводится ли проблема без них. Кроме того, хотелось бы > увидеть вывод "nginx -V". > > (Отмечу также, что в целом ошибка выглядит безвредно - собственно, > логгируемая ошибка и есть основной его эффект. В остальном всё > работает штатно.) ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Thu Feb 25 15:44:03 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 18:44:03 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160225135333.GC7810@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> Message-ID: 25 февраля 2016 г., 16:53 пользователь Roman Arutyunyan написал: > > > Маловат фрагмент. Хотелось бы посмотреть на весь запрос и подзапросы. > > Сразу прошу прощения за размер логов. http://disk.karelia.pro/833rexx/ Два лога: 1. с proxy_cache_min_uses 1. Работает, как задумывалось. Запрос на перемотку можно найти по диапазону 498197221-1279019570. 2. с proxy_cache_min_uses 50. Ломается перемотка из-за игнорирования Range (или учета If-Range, кто его разберет). Запрос на пеермотку можно найти по диапазону 467829492-1279019570. И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с переполнением диска? Диск 220G, max_cache опустил до 190G, а на деле диск забивается под завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, 10-20 rps). В temp в этот момент не более 20 временных файлов размером ~ 10 мегабайт. В кеше все элементы <= 10 мегабайт. Незакрытых удаленных файлов на диске нет. В error log куча сообщений c No space left on device. Спасибо. -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgx на protva.ru Thu Feb 25 15:53:34 2016 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Thu, 25 Feb 2016 18:53:34 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: <20160225135333.GC7810@Romans-MacBook-Air.local> Message-ID: <20160225155334.GA21399@cio.protva.ru> On Thu, Feb 25, 2016 at 06:44:03PM +0300, Vadim Lazovskiy wrote: > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > переполнением диска? > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, 10-20 rps). > В temp в этот момент не более 20 временных файлов размером ~ 10 мегабайт. В > кеше все элементы <= 10 мегабайт. > Незакрытых удаленных файлов на диске нет. > В error log куча сообщений c No space left on device. Проверьте количество инод: df -i. -- Eugene Berdnikov From nginx-forum на forum.nginx.org Thu Feb 25 16:16:38 2016 From: nginx-forum на forum.nginx.org (ErmakovIE) Date: Thu, 25 Feb 2016 11:16:38 -0500 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L/RgNC+0L/Rg9GB0LrQsNC10YIg0L7RgiBwcm94eSA=?= =?UTF-8?B?0LTQu9C40L3QvdGL0LkgQ29udGVudC1EaXNwb3NpdGlvbg==?= In-Reply-To: <7631006.3kvbQP3ysh@vbart-laptop> References: <7631006.3kvbQP3ysh@vbart-laptop> Message-ID: <3f16b54e83b62fac4eeb43979a45ff27.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Прошу прощения за недостаточно точный вопрос. Ожидал, что просто уперся в какую-то настройку. Версия 1.8.0, Linux (Ubuntu). Конфиг: location /_download { alias /var/fnc_storage; internal; } location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host localhost:8088; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://localhost:8088; } Приложение генерирует заголовки: X-Accel-Redirect: /_download/12345 Content-Disposition: attachment; filename="Odrin_Metod_morfologicheskogo_analiza_texnicheskix_sistem_k.doc"; filename*=UTF-8''%D0%9E%D0%B4%D1%80%D0%B8%D0%BD_%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%20%D0%BC%D0%BE%D1%80%D1%84%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_k.doc (в соответствии с RFC5987). Когда имя файла небольшое - и в кодированном виде длина заголовка меньше примерно 256 (если не ошибся, то почему-то граница 258, а не 256), то всё проходит верно - Nginx отдаёт файл по пути _download и пропускает заголовок Content-Disposition, сформированный приложением. Но вот для приведенного примера заголовка, когда имя файла длинное, Nginx вместо Content-Disposition, полученного от приложения, отдает Content-Disposition: "/_download/39" Стоит всего лишь несколько укоротить приведённый выше заголовок, как начинает проходить нормально. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264758,264835#msg-264835 From mdounin на mdounin.ru Thu Feb 25 16:20:50 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 25 Feb 2016 19:20:50 +0300 Subject: slice module + thread pools In-Reply-To: References: Message-ID: <20160225162050.GA31796@mdounin.ru> Hello! On Tue, Feb 23, 2016 at 11:22:45AM +0300, Vadim Lazovskiy wrote: [...] > Проблема 2 (aio включено slice включен): > Если запустить скачивание файла через прокси, скорость очень низкая, > соединение постоянно разрывается. В логах при этом: > 2016/02/23 10:36:11 [alert] 11124#11124: task #1 already active > 2016/02/23 10:36:12 [alert] 11124#11124: task #4 already active > 2016/02/23 10:36:14 [alert] 11124#11124: task #7 already active > 2016/02/23 10:36:17 [alert] 11124#11124: task #10 already active > 2016/02/23 10:37:59 [alert] 11124#11124: task #23 already active > 2016/02/23 10:38:07 [alert] 11124#11124: task #35 already active > 2016/02/23 10:38:17 [alert] 11124#11124: task #37 already active > > Если отключить slice module, все становится хорошо. Это выглядит как проблема при aio threads + sendfile + подзапросы. Workaround - выключить что-нибудь из списка. Just for the record, воспроизводится с помощью тестов как-то так: TEST_NGINX_GLOBALS_HTTP="aio threads; sendfile on;" prove proxy_store.t Патч: # HG changeset patch # User Maxim Dounin # Date 1456417157 -10800 # Thu Feb 25 19:19:17 2016 +0300 # Node ID 06da00f231e74bbb8dbb55fd6abd88ca8b207917 # Parent 463609ba52b07e8e669d83ca7ca7fa754ae5355a Fixed sendfile in threads when used with subrequests. If sendfile in threads where used, it was possible that multiple subrequests will trigger multiple ngx_linux_sendfile_thread() calls, as operations are only serialized in output chain based on r->aio, that is, on subrequest level. This resulted in "task #N already active" alerts, in particular, when running proxy_store.t with "aio threads; sendfile on;". Fix is to tolerate duplicate calls, with an additional safety check that the file is the same as previously used. diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c --- a/src/os/unix/ngx_linux_sendfile_chain.c +++ b/src/os/unix/ngx_linux_sendfile_chain.c @@ -354,6 +354,18 @@ ngx_linux_sendfile_thread(ngx_connection return (ctx->sent == ctx->size) ? NGX_DONE : NGX_AGAIN; } + if (task->event.active && ctx->file == file) { + /* + * tolerate duplicate calls with the same file; + * it can happen due to subrequests, as r->aio only serializes + * operations within a single subrequest + */ + + *sent = 0; + + return NGX_OK; + } + ctx->file = file; ctx->socket = c->fd; ctx->size = size; -- Maxim Dounin http://nginx.org/ From vadim.lazovskiy на gmail.com Thu Feb 25 16:26:40 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 19:26:40 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160225155334.GA21399@cio.protva.ru> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225155334.GA21399@cio.protva.ru> Message-ID: 25 февраля 2016 г., 18:53 пользователь Evgeniy Berdnikov написал: > > > Проверьте количество инод: df -i. > > Инодов хватает. Проблема именно с местом. Почти все файлы имеют размер слайса - 10 мегабайт, таким образом их влезает не более 22 тысяч. -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From vbart на nginx.com Thu Feb 25 17:04:29 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 25 Feb 2016 20:04:29 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L/RgNC+0L/Rg9GB0LrQsNC10YIg0L7RgiBwcm94eSA=?= =?UTF-8?B?0LTQu9C40L3QvdGL0LkgQ29udGVudC1EaXNwb3NpdGlvbg==?= In-Reply-To: <3f16b54e83b62fac4eeb43979a45ff27.NginxMailingListRussian@forum.nginx.org> References: <7631006.3kvbQP3ysh@vbart-laptop> <3f16b54e83b62fac4eeb43979a45ff27.NginxMailingListRussian@forum.nginx.org> Message-ID: <3320669.lFy2ocFDd1@vbart-workstation> On Thursday 25 February 2016 11:16:38 ErmakovIE wrote: > Здравствуйте! > > Прошу прощения за недостаточно точный вопрос. Ожидал, что просто уперся в > какую-то настройку. > > Версия 1.8.0, Linux (Ubuntu). > > Конфиг: > location /_download { > alias /var/fnc_storage; > internal; > } > > location / { > proxy_redirect off; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header Host localhost:8088; > proxy_set_header X-Forwarded-For $remote_addr; > proxy_pass http://localhost:8088; > } > > Приложение генерирует заголовки: > > X-Accel-Redirect: /_download/12345 > > Content-Disposition: attachment; > filename="Odrin_Metod_morfologicheskogo_analiza_texnicheskix_sistem_k.doc"; > filename*=UTF-8''%D0%9E%D0%B4%D1%80%D0%B8%D0%BD_%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%20%D0%BC%D0%BE%D1%80%D1%84%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_k.doc > > (в соответствии с RFC5987). > > Когда имя файла небольшое - и в кодированном виде длина заголовка меньше > примерно 256 (если не ошибся, то почему-то граница 258, а не 256), то всё > проходит верно - Nginx отдаёт файл по пути _download и пропускает заголовок > Content-Disposition, сформированный приложением. > > Но вот для приведенного примера заголовка, когда имя файла длинное, > Nginx вместо Content-Disposition, полученного от приложения, отдает > Content-Disposition: "/_download/39" > > Стоит всего лишь несколько укоротить приведённый выше заголовок, как > начинает проходить нормально. > Сомневаюсь что это делает nginx. Debug-лог бы в данном случае прояснил ситуацию. -- Валентин Бартенев From vadim.lazovskiy на gmail.com Thu Feb 25 17:06:38 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 20:06:38 +0300 Subject: slice module + thread pools In-Reply-To: <20160225162050.GA31796@mdounin.ru> References: <20160225162050.GA31796@mdounin.ru> Message-ID: 2016-02-25 19:20 GMT+03:00 Maxim Dounin : > > > Это выглядит как проблема при aio threads + sendfile + подзапросы. > Workaround - выключить что-нибудь из списка. Just for the record, > воспроизводится с помощью тестов как-то так: > > TEST_NGINX_GLOBALS_HTTP="aio threads; sendfile on;" prove proxy_store.t > > Патч: > > # HG changeset patch > # User Maxim Dounin > # Date 1456417157 -10800 > # Thu Feb 25 19:19:17 2016 +0300 > # Node ID 06da00f231e74bbb8dbb55fd6abd88ca8b207917 > # Parent 463609ba52b07e8e669d83ca7ca7fa754ae5355a > Fixed sendfile in threads when used with subrequests. > > If sendfile in threads where used, it was possible that multiple > subrequests will trigger multiple ngx_linux_sendfile_thread() calls, > as operations are only serialized in output chain based on r->aio, > that is, on subrequest level. > > This resulted in "task #N already active" alerts, in particular, when > running proxy_store.t with "aio threads; sendfile on;". > > Fix is to tolerate duplicate calls, with an additional safety check > that the file is the same as previously used. > > diff --git a/src/os/unix/ngx_linux_sendfile_chain.c > b/src/os/unix/ngx_linux_sendfile_chain.c > --- a/src/os/unix/ngx_linux_sendfile_chain.c > +++ b/src/os/unix/ngx_linux_sendfile_chain.c > @@ -354,6 +354,18 @@ ngx_linux_sendfile_thread(ngx_connection > return (ctx->sent == ctx->size) ? NGX_DONE : NGX_AGAIN; > } > > + if (task->event.active && ctx->file == file) { > + /* > + * tolerate duplicate calls with the same file; > + * it can happen due to subrequests, as r->aio only serializes > + * operations within a single subrequest > + */ > + > + *sent = 0; > + > + return NGX_OK; > + } > + > ctx->file = file; > ctx->socket = c->fd; > ctx->size = size; > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From vadim.lazovskiy на gmail.com Thu Feb 25 17:11:31 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Thu, 25 Feb 2016 20:11:31 +0300 Subject: slice module + thread pools In-Reply-To: <20160225162050.GA31796@mdounin.ru> References: <20160225162050.GA31796@mdounin.ru> Message-ID: 2016-02-25 19:20 GMT+03:00 Maxim Dounin : > Патч: > > # HG changeset patch > # User Maxim Dounin > # Date 1456417157 -10800 > # Thu Feb 25 19:19:17 2016 +0300 > # Node ID 06da00f231e74bbb8dbb55fd6abd88ca8b207917 > # Parent 463609ba52b07e8e669d83ca7ca7fa754ae5355a > Fixed sendfile in threads when used with subrequests. > > If sendfile in threads where used, it was possible that multiple > subrequests will trigger multiple ngx_linux_sendfile_thread() calls, > as operations are only serialized in output chain based on r->aio, > that is, on subrequest level. > > This resulted in "task #N already active" alerts, in particular, when > running proxy_store.t with "aio threads; sendfile on;". > > Fix is to tolerate duplicate calls, with an additional safety check > that the file is the same as previously used. > > diff --git a/src/os/unix/ngx_linux_sendfile_chain.c > b/src/os/unix/ngx_linux_sendfile_chain.c > --- a/src/os/unix/ngx_linux_sendfile_chain.c > +++ b/src/os/unix/ngx_linux_sendfile_chain.c > @@ -354,6 +354,18 @@ ngx_linux_sendfile_thread(ngx_connection > return (ctx->sent == ctx->size) ? NGX_DONE : NGX_AGAIN; > } > > + if (task->event.active && ctx->file == file) { > + /* > + * tolerate duplicate calls with the same file; > + * it can happen due to subrequests, as r->aio only serializes > + * operations within a single subrequest > + */ > + > + *sent = 0; > + > + return NGX_OK; > + } > + > ctx->file = file; > ctx->socket = c->fd; > ctx->size = size; > > Максим, спасибо. На первый взгляд патч работает. Завтра попробуем под нагрузкой. P.S.: может показаться, что я не умею пользоваться почтой. Похоже, это действительно так. Прошу меня извинить ;) -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From oleg на mamontov.net Thu Feb 25 17:14:36 2016 From: oleg на mamontov.net (Oleg A. Mamontov) Date: Thu, 25 Feb 2016 20:14:36 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9GA0L4gcHJveHkgc3RvcmU=?= In-Reply-To: <8a8f6c77a424e1a5a4df6079af269160.NginxMailingListRussian@forum.nginx.org> References: <20160224222934.GB85115@xenon.mamontov.net> <8a8f6c77a424e1a5a4df6079af269160.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160225171436.GE85115@xenon.mamontov.net> On Thu, Feb 25, 2016 at 10:17:20AM -0500, vitcool wrote: > А поженить proxy_store и proxy_cache нельзя? :) > например: если нет в proxy_cache, то искать в alias у proxy_store, и если > там нет то тогда идти к proxy_pass бекенду на поклон? Можно, например так: --------------------------------------------- server { listen 80; location / { proxy_pass http://127.0.0.1:8080; proxy_cache static; proxy_cache_valid 200 1d; } } server { listen 127.0.0.1:8080; location / { root /data/www; error_page 404 = /fetch$uri; } location /fetch/ { internal; proxy_pass http://backend/; proxy_store on; proxy_store_access user:rw group:rw all:r; proxy_temp_path /data/temp; alias /data/www/; } --------------------------------------------- Конфигурацию не проверял, но идея, надеюсь, понятна. > Наверное выглядит немного бредово, но это отчасти решает проблему бекапа статики которая изначально появляется на бекенде > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264801,264830#msg-264830 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Cheers, Oleg A. Mamontov mailto: oleg на mamontov.net skype: lonerr11 cell: +7 (903) 798-1352 From mdounin на mdounin.ru Thu Feb 25 17:25:23 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 25 Feb 2016 20:25:23 +0300 Subject: =?UTF-8?Q?Re=3A_zero_size_buf_in_output_=D0=BF=D1=80=D0=B8_proxy_cache?= In-Reply-To: <1665194.4NCDIQP41P@cybernote> References: <20160216200457.GV34421@mdounin.ru> <1665194.4NCDIQP41P@cybernote> Message-ID: <20160225172523.GC31796@mdounin.ru> Hello! On Thu, Feb 25, 2016 at 06:19:04PM +0300, Иван wrote: > Можем ли мы еще что-то сделать для решения этой проблемы? Да, в идеале - тесты и патч, её исправляющий. Также имеет смысл: - описать проблему на trac.nginx.org; - периодически напоминать, что проблема всё ещё вас беспокоит и по прежнему проявляется на актуальных версиях. В почте у меня соответствующее письмо отмечено, но вряд ли я доберусь до "посмотреть это подробнее" в ближайшее время. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Thu Feb 25 17:49:33 2016 From: nginx-forum на forum.nginx.org (ErmakovIE) Date: Thu, 25 Feb 2016 12:49:33 -0500 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L/RgNC+0L/Rg9GB0LrQsNC10YIg0L7RgiBwcm94eSA=?= =?UTF-8?B?0LTQu9C40L3QvdGL0LkgQ29udGVudC1EaXNwb3NpdGlvbg==?= In-Reply-To: <3320669.lFy2ocFDd1@vbart-workstation> References: <3320669.lFy2ocFDd1@vbart-workstation> Message-ID: <9fb3026ea90506960240b47b089a3196.NginxMailingListRussian@forum.nginx.org> Да, действительно, проблема до Nginx. Ошибка вышла. Прошу прощения за ошибочную тревогу. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264758,264847#msg-264847 From arut на nginx.com Thu Feb 25 18:28:37 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Thu, 25 Feb 2016 21:28:37 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: <20160225135333.GC7810@Romans-MacBook-Air.local> Message-ID: <20160225182837.GB21298@Romans-MacBook-Air.local> On Thu, Feb 25, 2016 at 06:44:03PM +0300, Vadim Lazovskiy wrote: > 25 февраля 2016 г., 16:53 пользователь Roman Arutyunyan > написал: > > > > > > Маловат фрагмент. Хотелось бы посмотреть на весь запрос и подзапросы. > > > > > Сразу прошу прощения за размер логов. > > http://disk.karelia.pro/833rexx/ > > Два лога: > 1. с proxy_cache_min_uses 1. Работает, как задумывалось. > Запрос на перемотку можно найти по диапазону 498197221-1279019570. > > 2. с proxy_cache_min_uses 50. Ломается перемотка из-за игнорирования Range > (или учета If-Range, кто его разберет). > Запрос на пеермотку можно найти по диапазону 467829492-1279019570. Попробуйте патч в аттаче. > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > переполнением диска? > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, 10-20 rps). > В temp в этот момент не более 20 временных файлов размером ~ 10 мегабайт. В > кеше все элементы <= 10 мегабайт. > Незакрытых удаленных файлов на диске нет. > В error log куча сообщений c No space left on device. Может быть такое, что кеш растет так быстро, что nginx не успевает его очищать. Еще одна причина - рестарт воркеров. Если по какой-либо причине это происходит (например, из-за нестабильных 3rd-party модулей), то кеш может остаться в неконсистентном состоянии, что может приводить к описанной вами проблеме. Насколько часто это у вас это происходит? -- Roman Arutyunyan ----------- следущая часть ----------- # HG changeset patch # User Roman Arutyunyan # Date 1456424237 -10800 # Thu Feb 25 21:17:17 2016 +0300 # Node ID 93266a5c3377443acc1091fd8b2f3553e19bfa09 # Parent 6812ca9a800247d2428f487d9b4938a2b499b7d8 [mq]: upstream-lmt diff -r 6812ca9a8002 -r 93266a5c3377 src/http/ngx_http_upstream.c --- a/src/http/ngx_http_upstream.c Tue Feb 16 17:49:14 2016 +0300 +++ b/src/http/ngx_http_upstream.c Thu Feb 25 21:17:17 2016 +0300 @@ -4146,15 +4146,8 @@ ngx_http_upstream_process_last_modified( u = r->upstream; u->headers_in.last_modified = h; - -#if (NGX_HTTP_CACHE) - - if (u->cacheable) { - u->headers_in.last_modified_time = ngx_parse_http_time(h->value.data, - h->value.len); - } - -#endif + u->headers_in.last_modified_time = ngx_parse_http_time(h->value.data, + h->value.len); return NGX_OK; } @@ -4651,15 +4644,8 @@ ngx_http_upstream_copy_last_modified(ngx *ho = *h; r->headers_out.last_modified = ho; - -#if (NGX_HTTP_CACHE) - - if (r->upstream->cacheable) { - r->headers_out.last_modified_time = + r->headers_out.last_modified_time = r->upstream->headers_in.last_modified_time; - } - -#endif return NGX_OK; } From nginx-forum на forum.nginx.org Thu Feb 25 19:26:27 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Thu, 25 Feb 2016 14:26:27 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <5947982.CHJPS6G2fV@vbart-workstation> References: <5947982.CHJPS6G2fV@vbart-workstation> Message-ID: <883d42cde7b5a179efcbcd770d4f0b2e.NginxMailingListRussian@forum.nginx.org> Валентин Бартенев Wrote: > Можно настроить дебаг лог в памяти: > http://nginx.org/ru/docs/debugging_log.html#memory В общем подозрения не оправдались - ошибка возникает даже в версии 1.9.11 вашей сборки top: http://i045.radikal.ru/1602/07/7275aafb6f02.png cpu-daily: http://i023.radikal.ru/1602/db/01658625aa1f.png попытался включить запись debug-лога в кольцевой буфер в памяти, но nginx -t: nginx: [emerg] nginx was built without debug support in /etc/nginx/nginx.conf:23 nginx: configuration file /etc/nginx/nginx.conf test failed сам его я его точно не соберу как нужно, и как тут быть? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264850#msg-264850 From alex.hha на gmail.com Thu Feb 25 19:43:37 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Thu, 25 Feb 2016 21:43:37 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <883d42cde7b5a179efcbcd770d4f0b2e.NginxMailingListRussian@forum.nginx.org> References: <5947982.CHJPS6G2fV@vbart-workstation> <883d42cde7b5a179efcbcd770d4f0b2e.NginxMailingListRussian@forum.nginx.org> Message-ID: ​ > сам его я его точно не соберу как нужно, и как тут быть? А зачем его собирать? За вас уже все собрали # aptitude install nginx-debug ​ 2016-02-25 21:26 GMT+02:00 mikhal123 : > Валентин Бартенев Wrote: > > Можно настроить дебаг лог в памяти: > > http://nginx.org/ru/docs/debugging_log.html#memory > > В общем подозрения не оправдались - ошибка возникает даже в версии 1.9.11 > вашей сборки > top: http://i045.radikal.ru/1602/07/7275aafb6f02.png > cpu-daily: http://i023.radikal.ru/1602/db/01658625aa1f.png > > попытался включить запись debug-лога в кольцевой буфер в памяти, но nginx > -t: > nginx: [emerg] nginx was built without debug support in > /etc/nginx/nginx.conf:23 > nginx: configuration file /etc/nginx/nginx.conf test failed > > сам его я его точно не соберу как нужно, и как тут быть? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,264701,264850#msg-264850 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Thu Feb 25 19:52:15 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Thu, 25 Feb 2016 14:52:15 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: Message-ID: <603f9d8b2ba9c92a78b0f8a0fe19909d.NginxMailingListRussian@forum.nginx.org> ALex_hha Wrote: ------------------------------------------------------- > > сам его я его точно не соберу как нужно, и как тут быть? > А зачем его собирать? За вас уже все собрали > # aptitude install nginx-debug ну как-то так... aptitude install nginx-debug Следующие НОВЫЕ пакеты будут установлены: nginx-debug{b} 0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено. Необходимо получить 1 630 kB архивов. После распаковки 7 951 kB будет занято. Следующие пакеты имеют неудовлетворённые зависимости: nginx-debug : Зависит: nginx (= 1.9.7-1~jessie) но установлен 1.9.12-1~jessie Следующие действия разрешат зависимости: Сохранить для следующих пакетов их текущие версии: 1) nginx-debug [Не установлен] Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264852#msg-264852 From vbart на nginx.com Thu Feb 25 19:57:52 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 25 Feb 2016 22:57:52 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <603f9d8b2ba9c92a78b0f8a0fe19909d.NginxMailingListRussian@forum.nginx.org> References: <603f9d8b2ba9c92a78b0f8a0fe19909d.NginxMailingListRussian@forum.nginx.org> Message-ID: <3549753.FjsGiTTECK@vbart-laptop> On Thursday 25 February 2016 14:52:15 mikhal123 wrote: > ALex_hha Wrote: > ------------------------------------------------------- > > > > сам его я его точно не соберу как нужно, и как тут быть? > > > > А зачем его собирать? За вас уже все собрали > > # aptitude install nginx-debug > > ну как-то так... > > aptitude install nginx-debug > Следующие НОВЫЕ пакеты будут установлены: > nginx-debug{b} > 0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и > 0 пакетов не обновлено. > Необходимо получить 1 630 kB архивов. После распаковки 7 951 kB будет > занято. > Следующие пакеты имеют неудовлетворённые зависимости: > nginx-debug : Зависит: nginx (= 1.9.7-1~jessie) но установлен > 1.9.12-1~jessie > Следующие действия разрешат зависимости: > > Сохранить для следующих пакетов их текущие версии: > 1) nginx-debug [Не установлен] > [..] Не нужно ничего устанавливать. nginx-debug уже установлен, он ставится вместе с основным пакетом, его нужно только запустить. -- Валентин Бартенев From nginx-forum на forum.nginx.org Thu Feb 25 20:05:42 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Thu, 25 Feb 2016 15:05:42 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <3549753.FjsGiTTECK@vbart-laptop> References: <3549753.FjsGiTTECK@vbart-laptop> Message-ID: Валентин Бартенев Wrote: > Не нужно ничего устанавливать. > nginx-debug уже установлен, он ставится вместе с основным пакетом, > его нужно только запустить. что-то я не понимаю... aptitude show nginx-debug Пакет: nginx-debug Новый: да Состояние: не установлен Версия: 1.9.7-1~jessie Приоритет: дополнительный Раздел: debug Сопровождающий: Sergey Budnevitch Архитектура: amd64 Размер в распакованном виде: 7 951 k Зависимости: libc6 (>= 2.14), libpcre3 (>= 1:8.35), libssl1.0.0 (>= 1.0.1), zlib1g (>= 1:1.1.4), nginx (= 1.9.7-1~jessie) Описание: debug version of nginx Not stripped version of nginx built with the debugging log support. Сайт: http://nginx.org помимо этого, вот тут вот http://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/ вроде как видно что версия для 1.9.7 является крайней? nginx-debug_1.9.7-1~wheezy_i386.deb 17-Nov-2015 15:55 3936370 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264854#msg-264854 From vbart на nginx.com Thu Feb 25 20:10:23 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 25 Feb 2016 23:10:23 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> Message-ID: <2141657.Z3ZTWDvHxI@vbart-laptop> On Thursday 25 February 2016 15:05:42 mikhal123 wrote: > Валентин Бартенев Wrote: > > Не нужно ничего устанавливать. > > nginx-debug уже установлен, он ставится вместе с основным пакетом, > > его нужно только запустить. > > что-то я не понимаю... > > aptitude show nginx-debug > Пакет: nginx-debug > Новый: да > Состояние: не установлен > Версия: 1.9.7-1~jessie > Приоритет: дополнительный > Раздел: debug > Сопровождающий: Sergey Budnevitch > Архитектура: amd64 > Размер в распакованном виде: 7 951 k > Зависимости: libc6 (>= 2.14), libpcre3 (>= 1:8.35), libssl1.0.0 (>= 1.0.1), > zlib1g (>= 1:1.1.4), nginx (= 1.9.7-1~jessie) > Описание: debug version of nginx > Not stripped version of nginx built with the debugging log support. > Сайт: http://nginx.org > > > помимо этого, вот тут вот > http://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/ > вроде как видно что версия для 1.9.7 является крайней? > nginx-debug_1.9.7-1~wheezy_i386.deb 17-Nov-2015 15:55 > 3936370 > [..] Я имел в виду не пакет, а исполняемый файл. Основной пакет nginx на самом деле устанавливает два бинарника - nginx и nginx-debug, где последний является той же версией, но собранный с --with-debug. $ nginx-debug -V -- Валентин Бартенев From alex.hha на gmail.com Thu Feb 25 23:40:54 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Fri, 26 Feb 2016 01:40:54 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <2141657.Z3ZTWDvHxI@vbart-laptop> References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: > Не нужно ничего устанавливать. > nginx-debug уже установлен, он ставится вместе с основным пакетом, его нужно только запустить. странно, как минимум на ubuntu 12.04 LTS и CentOS 6 для nginx-1.8 это не справедливо. # rpm -qa | grep nginx nginx-1.8.1-1.el6.ngx.x86_64 # rpm -ql nginx | grep debug или это относится только к ветке 1.9? 2016-02-25 22:10 GMT+02:00 Валентин Бартенев : > On Thursday 25 February 2016 15:05:42 mikhal123 wrote: > > Валентин Бартенев Wrote: > > > Не нужно ничего устанавливать. > > > nginx-debug уже установлен, он ставится вместе с основным пакетом, > > > его нужно только запустить. > > > > что-то я не понимаю... > > > > aptitude show nginx-debug > > Пакет: nginx-debug > > Новый: да > > Состояние: не установлен > > Версия: 1.9.7-1~jessie > > Приоритет: дополнительный > > Раздел: debug > > Сопровождающий: Sergey Budnevitch > > Архитектура: amd64 > > Размер в распакованном виде: 7 951 k > > Зависимости: libc6 (>= 2.14), libpcre3 (>= 1:8.35), libssl1.0.0 (>= > 1.0.1), > > zlib1g (>= 1:1.1.4), nginx (= 1.9.7-1~jessie) > > Описание: debug version of nginx > > Not stripped version of nginx built with the debugging log support. > > Сайт: http://nginx.org > > > > > > помимо этого, вот тут вот > > http://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/ > > вроде как видно что версия для 1.9.7 является крайней? > > nginx-debug_1.9.7-1~wheezy_i386.deb 17-Nov-2015 15:55 > > 3936370 > > > [..] > > Я имел в виду не пакет, а исполняемый файл. Основной пакет nginx на самом > деле устанавливает два бинарника - nginx и nginx-debug, где последний > является > той же версией, но собранный с --with-debug. > > $ nginx-debug -V > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From konstantin на symbi.org Fri Feb 26 04:51:19 2016 From: konstantin на symbi.org (Konstantin Baryshnikov) Date: Fri, 26 Feb 2016 07:51:19 +0300 Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <5492068.369.1456376447739.JavaMail.al@nlb01lx002> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> <5492068.369.1456376447739.JavaMail.al@nlb01lx002> Message-ID: <7A5C13D2-01B1-4934-930C-E33CA6B779A6@symbi.org> > В принципе практически все делается с использованием основной логики nginx, хидерс и ssi модулей, но проблемма > именно с генерением php uniqid. Можно, конечно попытаться перейти на тот-же userid модуль, но тогда придется > много что менять в бакэнде, который дальше будет это обрабатывать, чего бы сильно не хотелось. К уже озвученному совету с X-Accel-Redirect добавлю, что для его отдачи можно использовать сам php в неблокирующем режиме - например, с помощью http://reactphp.org/, будет буквально 10 строк кода, и вполне вменяемо по потреблению ресурсов. From auskov на neolabs.kz Fri Feb 26 05:47:23 2016 From: auskov на neolabs.kz (Alexander Uskov) Date: Fri, 26 Feb 2016 11:47:23 +0600 (ALMT) Subject: =?UTF-8?B?UmU6INC80L7QtNGD0LvRjCDQvdCwINC30LDQutCw0Lc=?= In-Reply-To: <7A5C13D2-01B1-4934-930C-E33CA6B779A6@symbi.org> References: <28446426.59.1456220445190.JavaMail.al@nlb01lx002> <188880F8-FA03-4353-A96F-E0200B8F0509@symbi.org> <5492068.369.1456376447739.JavaMail.al@nlb01lx002> <7A5C13D2-01B1-4934-930C-E33CA6B779A6@symbi.org> Message-ID: <25106101.695.1456465610158.JavaMail.al@nlb01lx002> Сасибо за советы, но от использования php, а точнее hiphop под эту задачу ушел пару лет назад. Слишком тяжелый комбаин для такой простой работы. А модуль уже починил, там проблемы были с ноль-терминированными строками. Короче вопрос снят :) ~~~ wbr, Alexander Uskov ----- Исходное сообщение ----- > От: "Konstantin Baryshnikov" > Кому: nginx-ru на nginx.org > Отправленные: Пятница, 26 Февраль 2016 г 10:51:19 > Тема: Re: модуль на заказ > > > > В принципе практически все делается с использованием основной > > логики nginx, хидерс и ssi модулей, но проблемма > > именно с генерением php uniqid. Можно, конечно попытаться перейти > > на тот-же userid модуль, но тогда придется > > много что менять в бакэнде, который дальше будет это обрабатывать, > > чего бы сильно не хотелось. > > К уже озвученному совету с X-Accel-Redirect добавлю, что для его > отдачи можно использовать сам php в неблокирующем режиме - например, > с помощью http://reactphp.org/, будет буквально 10 строк кода, и > вполне вменяемо по потреблению ресурсов. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From sytar.alex на gmail.com Fri Feb 26 06:50:58 2016 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Fri, 26 Feb 2016 09:50:58 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: 26 февраля 2016 г., 2:40 пользователь Alex Domoradov написал: > > Не нужно ничего устанавливать. > > nginx-debug уже установлен, он ставится вместе с основным пакетом, его > нужно только запустить. > > странно, как минимум на ubuntu 12.04 LTS и CentOS 6 для nginx-1.8 это не > справедливо. > > # rpm -qa | grep nginx > nginx-1.8.1-1.el6.ngx.x86_64 > > # rpm -ql nginx | grep debug > > или это относится только к ветке 1.9? > Речь не о пакете, а о бинаре: $ which nginx-debug /usr/sbin/nginx-debug > > 2016-02-25 22:10 GMT+02:00 Валентин Бартенев : > >> On Thursday 25 February 2016 15:05:42 mikhal123 wrote: >> > Валентин Бартенев Wrote: >> > > Не нужно ничего устанавливать. >> > > nginx-debug уже установлен, он ставится вместе с основным пакетом, >> > > его нужно только запустить. >> > >> > что-то я не понимаю... >> > >> > aptitude show nginx-debug >> > Пакет: nginx-debug >> > Новый: да >> > Состояние: не установлен >> > Версия: 1.9.7-1~jessie >> > Приоритет: дополнительный >> > Раздел: debug >> > Сопровождающий: Sergey Budnevitch >> > Архитектура: amd64 >> > Размер в распакованном виде: 7 951 k >> > Зависимости: libc6 (>= 2.14), libpcre3 (>= 1:8.35), libssl1.0.0 (>= >> 1.0.1), >> > zlib1g (>= 1:1.1.4), nginx (= 1.9.7-1~jessie) >> > Описание: debug version of nginx >> > Not stripped version of nginx built with the debugging log support. >> > Сайт: http://nginx.org >> > >> > >> > помимо этого, вот тут вот >> > http://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/ >> > вроде как видно что версия для 1.9.7 является крайней? >> > nginx-debug_1.9.7-1~wheezy_i386.deb 17-Nov-2015 15:55 >> > 3936370 >> > >> [..] >> >> Я имел в виду не пакет, а исполняемый файл. Основной пакет nginx на самом >> деле устанавливает два бинарника - nginx и nginx-debug, где последний >> является >> той же версией, но собранный с --with-debug. >> >> $ nginx-debug -V >> >> -- >> Валентин Бартенев >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Fri Feb 26 07:44:17 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Fri, 26 Feb 2016 10:44:17 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160225182837.GB21298@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> Message-ID: 25 февраля 2016 г., 21:28 пользователь Roman Arutyunyan написал: > > Попробуйте патч в аттаче. > > Роман, спасибо! Теперь все работает как задумано. > > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > > переполнением диска? > > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, 10-20 > rps). > > В temp в этот момент не более 20 временных файлов размером ~ 10 > мегабайт. В > > кеше все элементы <= 10 мегабайт. > > Незакрытых удаленных файлов на диске нет. > > В error log куча сообщений c No space left on device. > > Может быть такое, что кеш растет так быстро, что nginx не успевает его > очищать. > > Еще одна причина - рестарт воркеров. Если по какой-либо причине это > происходит > (например, из-за нестабильных 3rd-party модулей), то кеш может остаться в > неконсистентном состоянии, что может приводить к описанной вами проблеме. > > Насколько часто это у вас это происходит? > > В том-то и дело, что воркеры не падают и сборка без сторонних модулей. Глядя на strace процесса cache manager, видно, что он что-то удаляет, но каждый раз недостаточно. Суммарный размер каталогов 0-f балансирует около значения размера диска (220G) и до указанных 190G даже близко не опускается. При этом '(deleted)' файлов на диске нет и в temp файлов суммарно мегабайт на 300. Ближе к вечеру станет ясно, повториться ли эта проблема с proxy_cache_min_uses 10. Пока что очевидно, что write-IO сократилось на порядок. Авось ssd протянут подольше, за что вам еще раз спасибо. -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.hha на gmail.com Fri Feb 26 08:19:03 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Fri, 26 Feb 2016 10:19:03 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: > Речь не о пакете, а о бинаре: а каким магическим образом бинарь появится в системе, кроме как установки из пакета? Или мы говорим о разных вещах? 2016-02-26 8:50 GMT+02:00 Aleksandr Sytar : > > > 26 февраля 2016 г., 2:40 пользователь Alex Domoradov > написал: > >> > Не нужно ничего устанавливать. >> > nginx-debug уже установлен, он ставится вместе с основным пакетом, его >> нужно только запустить. >> >> странно, как минимум на ubuntu 12.04 LTS и CentOS 6 для nginx-1.8 это не >> справедливо. >> >> # rpm -qa | grep nginx >> nginx-1.8.1-1.el6.ngx.x86_64 >> >> # rpm -ql nginx | grep debug >> >> или это относится только к ветке 1.9? >> > > Речь не о пакете, а о бинаре: > > $ which nginx-debug > /usr/sbin/nginx-debug > > >> >> 2016-02-25 22:10 GMT+02:00 Валентин Бартенев : >> >>> On Thursday 25 February 2016 15:05:42 mikhal123 wrote: >>> > Валентин Бартенев Wrote: >>> > > Не нужно ничего устанавливать. >>> > > nginx-debug уже установлен, он ставится вместе с основным пакетом, >>> > > его нужно только запустить. >>> > >>> > что-то я не понимаю... >>> > >>> > aptitude show nginx-debug >>> > Пакет: nginx-debug >>> > Новый: да >>> > Состояние: не установлен >>> > Версия: 1.9.7-1~jessie >>> > Приоритет: дополнительный >>> > Раздел: debug >>> > Сопровождающий: Sergey Budnevitch >>> > Архитектура: amd64 >>> > Размер в распакованном виде: 7 951 k >>> > Зависимости: libc6 (>= 2.14), libpcre3 (>= 1:8.35), libssl1.0.0 (>= >>> 1.0.1), >>> > zlib1g (>= 1:1.1.4), nginx (= 1.9.7-1~jessie) >>> > Описание: debug version of nginx >>> > Not stripped version of nginx built with the debugging log support. >>> > Сайт: http://nginx.org >>> > >>> > >>> > помимо этого, вот тут вот >>> > http://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/ >>> > вроде как видно что версия для 1.9.7 является крайней? >>> > nginx-debug_1.9.7-1~wheezy_i386.deb 17-Nov-2015 15:55 >>> > 3936370 >>> > >>> [..] >>> >>> Я имел в виду не пакет, а исполняемый файл. Основной пакет nginx на >>> самом >>> деле устанавливает два бинарника - nginx и nginx-debug, где последний >>> является >>> той же версией, но собранный с --with-debug. >>> >>> $ nginx-debug -V >>> >>> -- >>> Валентин Бартенев >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru на nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Fri Feb 26 08:38:07 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Fri, 26 Feb 2016 11:38:07 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: Здравствуйте. В официальном репозитории доступна как сборка без --with-debug так и с ним. /usr/sbin/nginx /etc/init.d/nginx и /usr/sbin/nginx-debug /etc/init.d/nginx-debug соответственно. 26 февраля 2016 г., 11:19 пользователь Alex Domoradov написал: > > Речь не о пакете, а о бинаре: > а каким магическим образом бинарь появится в системе, кроме как установки > из пакета? Или мы говорим о разных вещах? > > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.hha на gmail.com Fri Feb 26 08:44:58 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Fri, 26 Feb 2016 10:44:58 +0200 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: Да вы просто КО :) А теперь еще раз перечитайте мой вопрос. 2016-02-26 10:38 GMT+02:00 Vadim Lazovskiy : > Здравствуйте. > > В официальном репозитории доступна как сборка без --with-debug так и с ним. > /usr/sbin/nginx /etc/init.d/nginx и /usr/sbin/nginx-debug > /etc/init.d/nginx-debug соответственно. > > 26 февраля 2016 г., 11:19 пользователь Alex Domoradov > написал: > >> > Речь не о пакете, а о бинаре: >> а каким магическим образом бинарь появится в системе, кроме как установки >> из пакета? Или мы говорим о разных вещах? >> >> > > -- > WBR, > Vadim Lazovskiy > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From arut на nginx.com Fri Feb 26 09:53:22 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Fri, 26 Feb 2016 12:53:22 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> Message-ID: <20160226095322.GC21298@Romans-MacBook-Air.local> On Fri, Feb 26, 2016 at 10:44:17AM +0300, Vadim Lazovskiy wrote: > 25 февраля 2016 г., 21:28 пользователь Roman Arutyunyan > написал: > > > > > Попробуйте патч в аттаче. > > > > > Роман, спасибо! Теперь все работает как задумано. > > > > > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > > > переполнением диска? > > > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > > > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, 10-20 > > rps). > > > В temp в этот момент не более 20 временных файлов размером ~ 10 > > мегабайт. В > > > кеше все элементы <= 10 мегабайт. > > > Незакрытых удаленных файлов на диске нет. > > > В error log куча сообщений c No space left on device. > > > > Может быть такое, что кеш растет так быстро, что nginx не успевает его > > очищать. > > > > Еще одна причина - рестарт воркеров. Если по какой-либо причине это > > происходит > > (например, из-за нестабильных 3rd-party модулей), то кеш может остаться в > > неконсистентном состоянии, что может приводить к описанной вами проблеме. > > > > Насколько часто это у вас это происходит? > > > > > В том-то и дело, что воркеры не падают и сборка без сторонних модулей. > Глядя на strace процесса cache manager, видно, что он что-то удаляет, но > каждый раз недостаточно. > Суммарный размер каталогов 0-f балансирует около значения размера диска > (220G) и до указанных 190G даже близко не опускается. > При этом '(deleted)' файлов на диске нет и в temp файлов суммарно мегабайт > на 300. Сколько файлов cache manager удаляет за раз? [..] -- Roman Arutyunyan From vadim.lazovskiy на gmail.com Fri Feb 26 10:32:32 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Fri, 26 Feb 2016 13:32:32 +0300 Subject: slice module + thread pools In-Reply-To: <20160225162050.GA31796@mdounin.ru> References: <20160225162050.GA31796@mdounin.ru> Message-ID: 2016-02-25 19:20 GMT+03:00 Maxim Dounin : > > Это выглядит как проблема при aio threads + sendfile + подзапросы. > Workaround - выключить что-нибудь из списка. Just for the record, > воспроизводится с помощью тестов как-то так: > > TEST_NGINX_GLOBALS_HTTP="aio threads; sendfile on;" prove proxy_store.t > Наткнулся на странное поведение: Если запустить в браузере просмотр видео через проксирующий nginx и одновременно запросить этот же файл wget-ом, закачка останавливается и соединение рвется по таймауту. Внятный debug log собрать пока не удалось, хоть и проблема воспроизводится. При отключении aio threads данной проблемы не наблюдается. -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From vbart на nginx.com Fri Feb 26 11:10:00 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Fri, 26 Feb 2016 14:10 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <3549753.FjsGiTTECK@vbart-laptop> <2141657.Z3ZTWDvHxI@vbart-laptop> Message-ID: <1942478.ok09by6NyF@vbart-workstation> On Friday 26 February 2016 01:40:54 Alex Domoradov wrote: > > Не нужно ничего устанавливать. > > nginx-debug уже установлен, он ставится вместе с основным пакетом, его > нужно только запустить. > > странно, как минимум на ubuntu 12.04 LTS и CentOS 6 для nginx-1.8 это не > справедливо. > > # rpm -qa | grep nginx > nginx-1.8.1-1.el6.ngx.x86_64 > > # rpm -ql nginx | grep debug > > или это относится только к ветке 1.9? > [..] Так стали собирать начиная с 1.9.8. -- Валентин Бартенев From nginx-forum на forum.nginx.org Fri Feb 26 14:41:47 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Fri, 26 Feb 2016 09:41:47 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <5947982.CHJPS6G2fV@vbart-workstation> References: <5947982.CHJPS6G2fV@vbart-workstation> Message-ID: Валентин Бартенев Wrote: ------------------------------------------------------- > Можно настроить дебаг лог в памяти: > http://nginx.org/ru/docs/debugging_log.html#memory включил debug лог в памяти, но при попытке забрать его в соответствии вот с этим мануалом https://www.nginx.com/blog/new-debugging-features-probe-nginx-internals/ gdb выдает что ему не хватает ../sysdeps/unix/sysv/linux/x86_64/syscall.S какие пакеты нужно доставить? gdb --pid 3648 -iex "source nginx.gdb" -ex "ddl" --batch [New LWP 3744] [New LWP 3743] [New LWP 3742] [New LWP 3741] [New LWP 3740] [New LWP 3739] [New LWP 3738] [New LWP 3737] [New LWP 3736] [New LWP 3735] [New LWP 3734] [New LWP 3733] [New LWP 3732] [New LWP 3731] [New LWP 3730] [New LWP 3729] [New LWP 3728] [New LWP 3727] [New LWP 3726] [New LWP 3725] [New LWP 3724] [New LWP 3723] [New LWP 3722] [New LWP 3721] [New LWP 3720] [New LWP 3719] [New LWP 3718] [New LWP 3717] [New LWP 3716] [New LWP 3715] [New LWP 3714] [New LWP 3713] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: Нет такого файла или каталога. Attempt to extract a component of a value that is not a structure pointer. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264879#msg-264879 From sb на nginx.com Fri Feb 26 15:04:03 2016 From: sb на nginx.com (Sergey Budnevitch) Date: Fri, 26 Feb 2016 18:04:03 +0300 Subject: =?UTF-8?B?0L/QsNC60LXRgiBuZ2lueC1kZWJ1Zw==?= Message-ID: <03479593-247B-48A9-A353-C64348AC59CD@nginx.com> Добрый день В наших пакетах помимо обычного запускаемого файла nginx был также nginx-debug - nginx сконфигурированный и собранный с аргументом —with-debug. Этот файл необходим для поиска ошибок: http://nginx.org/en/docs/debugging_log.html До версии 1.9.8 он поставлялся в отельном пакете nginx-debug, после был перенесен в основной пакет. Кроме того был добавлен inin-скрипт, с помощью которого можно запускать nginx-debug: % service nginx stop % service nginx-debug start nginx-debug будет использовать те же конфигурационные файлы. From gmm на csdoc.com Fri Feb 26 16:04:36 2016 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 26 Feb 2016 18:04:36 +0200 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YIgbmdpbngtZGVidWc=?= In-Reply-To: <03479593-247B-48A9-A353-C64348AC59CD@nginx.com> References: <03479593-247B-48A9-A353-C64348AC59CD@nginx.com> Message-ID: <56D07794.5070001@csdoc.com> On 26.02.2016 17:04, Sergey Budnevitch wrote: > В наших пакетах помимо обычного запускаемого файла nginx был также nginx-debug - > nginx сконфигурированный и собранный с аргументом —with-debug. Этот > файл необходим для поиска ошибок: http://nginx.org/en/docs/debugging_log.html > До версии 1.9.8 он поставлялся в отельном пакете nginx-debug, после был > перенесен в основной пакет. Кроме того был добавлен inin-скрипт, с помощью > которого можно запускать nginx-debug: > > % service nginx stop > % service nginx-debug start > > nginx-debug будет использовать те же конфигурационные файлы. На странице http://nginx.org/en/docs/debugging_log.html об этом ничего не написано, наоборот, там написано вот что: To enable a debugging log, nginx needs to be configured to support debugging during the build: ./configure --with-debug ... То есть, описан только вариант с пересборкой nginx из исходников. -- Best regards, Gena From nginx-forum на forum.nginx.org Fri Feb 26 18:34:34 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Fri, 26 Feb 2016 13:34:34 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <4471063.lEbry8dtmV@vbart-workstation> References: <4471063.lEbry8dtmV@vbart-workstation> Message-ID: Валентин Бартенев Wrote: > процессу и вытащить из него дебаг лог в момент зацикливания. в общем у меня не получается вытащить этот самый лог nginx.gdb: http://pastebin.com/KjWUxymi nginx2.gdb: http://pastebin.com/tu5C0VbA лог: http://pastebin.com/D4YEerAQ Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264889#msg-264889 From vbart на nginx.com Fri Feb 26 21:36:41 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Sat, 27 Feb 2016 00:36:41 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <4471063.lEbry8dtmV@vbart-workstation> Message-ID: <2668874.LlNp5Lopoa@vbart-laptop> On Friday 26 February 2016 13:34:34 mikhal123 wrote: > Валентин Бартенев Wrote: > > > процессу и вытащить из него дебаг лог в момент зацикливания. > > в общем у меня не получается вытащить этот самый лог > > nginx.gdb: http://pastebin.com/KjWUxymi > nginx2.gdb: http://pastebin.com/tu5C0VbA > лог: http://pastebin.com/D4YEerAQ > А вы в nginx.conf то сконфигурировали логирование в память? Для этого нужно на основной уровень добавить директиву: error_log memory:32m debug; -- Валентин Бартенев From mva на mva.name Sat Feb 27 06:47:36 2016 From: mva на mva.name (Vadim A. Misbakh-Soloviov) Date: Sat, 27 Feb 2016 12:47:36 +0600 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <20160224235456.GQ31796@mdounin.ru> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> <56CE0707.2090500@mva.name> <20160224235456.GQ31796@mdounin.ru> Message-ID: <56D14688.1090004@mva.name> Я пытаюсь представить, как опакечивать модули для source-based distros (кстати, fbsd ведь это тоже касается, вроде). Как-то обе идеи: что распаковывать весь ngx вместе с каждым собираемым модулем при сборке, что класть исходники куда-нибудь в /usr/src/nginx, кажутся мне немного чудными, имхо. Да и distro policy ругается на такое. А иного способа, что-то не вижу :( Hint: билд-директории чистятся после установки пакета и упаковывания его в тарбол. 25.02.2016 05:54, Maxim Dounin пишет: > Hello! > > On Thu, Feb 25, 2016 at 01:39:51AM +0600, Vadim A. Misbakh-Soloviov wrote: > >> Кстати, про динамические модули. >> >> Насколько я понял их текущую реализацию в NgX, для их сборки всё равно >> нужны распакованные исходники самого NgingX, в том сосотоянии, из >> которого собран бинарник. >> >> Т.е. не полуится просто взять и скомпилировать модуль в .so, используя >> только хидеры, а потом подсунуть его NginX'у в директорию с >> shared-модулями и тот его успешно загрузит. >> >> Или я ошибаюсь? > Вы пытаетесь сэкономить на распаковке исходников nginx'а? А > зачем? > From nginx-forum на forum.nginx.org Sat Feb 27 07:51:32 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Sat, 27 Feb 2016 02:51:32 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <2668874.LlNp5Lopoa@vbart-laptop> References: <2668874.LlNp5Lopoa@vbart-laptop> Message-ID: Валентин Бартенев Wrote: > А вы в nginx.conf то сконфигурировали логирование в память? Да, все добавил user www-data; #timer_resolution 25ms; worker_priority -10; worker_processes auto; worker_rlimit_nofile 65536; #worker_rlimit_sigpending 32768; pid /var/run/nginx.pid; events { worker_connections 8192; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; # access_log off; access_log /var/log/nginx/access.log combined gzip buffer=512k flush=1m; # error_log /var/log/nginx/error.log error; error_log memory:32m debug; Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264896#msg-264896 From vbart на nginx.com Sat Feb 27 10:23:01 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Sat, 27 Feb 2016 13:23:01 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: References: <2668874.LlNp5Lopoa@vbart-laptop> Message-ID: <18213235.syk67x0ErK@vbart-laptop> On Saturday 27 February 2016 02:51:32 mikhal123 wrote: > Валентин Бартенев Wrote: > > А вы в nginx.conf то сконфигурировали логирование в память? > Да, все добавил > > user www-data; > > #timer_resolution 25ms; > worker_priority -10; > worker_processes auto; > worker_rlimit_nofile 65536; > #worker_rlimit_sigpending 32768; > > pid /var/run/nginx.pid; > > events { > worker_connections 8192; > use epoll; > } > > http { > include /etc/nginx/mime.types; > default_type application/octet-stream; > > # access_log off; > access_log /var/log/nginx/access.log combined gzip buffer=512k flush=1m; > # error_log /var/log/nginx/error.log error; > error_log memory:32m debug; > [..] Директиву необходимо добавить на основной уровень конфигурации (the main context of your NGINX configuration file), а у вас она находится на уровне http. -- Валентин Бартенев From nefer05 на gmail.com Sat Feb 27 10:51:54 2016 From: nefer05 на gmail.com (=?UTF-8?B?0KDQvtC80LDQvSDQnNC+0YHQutCy0LjRgtC40L0=?=) Date: Sat, 27 Feb 2016 13:51:54 +0300 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <56D14688.1090004@mva.name> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> <56CE0707.2090500@mva.name> <20160224235456.GQ31796@mdounin.ru> <56D14688.1090004@mva.name> Message-ID: Можно посмотреть как в той же fbsd собираются пыховые модули. Именно распаковывая каждый раз архив. Это нормально, никто же не пересобирает модули по десять раз в час. 2016-02-27 9:47 GMT+03:00 Vadim A. Misbakh-Soloviov : > Я пытаюсь представить, как опакечивать модули для source-based distros > (кстати, fbsd ведь это тоже касается, вроде). Как-то обе идеи: что > распаковывать весь ngx вместе с каждым собираемым модулем при сборке, > что класть исходники куда-нибудь в /usr/src/nginx, кажутся мне немного > чудными, имхо. Да и distro policy ругается на такое. > А иного способа, что-то не вижу :( > Hint: билд-директории чистятся после установки пакета и упаковывания его > в тарбол. > > > 25.02.2016 05:54, Maxim Dounin пишет: > > Hello! > > > > On Thu, Feb 25, 2016 at 01:39:51AM +0600, Vadim A. Misbakh-Soloviov > wrote: > > > >> Кстати, про динамические модули. > >> > >> Насколько я понял их текущую реализацию в NgX, для их сборки всё равно > >> нужны распакованные исходники самого NgingX, в том сосотоянии, из > >> которого собран бинарник. > >> > >> Т.е. не полуится просто взять и скомпилировать модуль в .so, используя > >> только хидеры, а потом подсунуть его NginX'у в директорию с > >> shared-модулями и тот его успешно загрузит. > >> > >> Или я ошибаюсь? > > Вы пытаетесь сэкономить на распаковке исходников nginx'а? А > > зачем? > > > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Sat Feb 27 15:48:29 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Sat, 27 Feb 2016 18:48:29 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160226095322.GC21298@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> Message-ID: Добавил еще один диск, сделал reload proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:32m use_temp_path=off inactive=7d max_size=210G; proxy_cache_path /disks/ssd02 levels=1:2 keys_zone=cache_ssd02:32m use_temp_path=off inactive=7d max_size=210G; split_clients $request_uri $disk { 50% ssd01; 50% ssd02; } Первый диск переполнился, при этом cache manager вообще ничего не удалял. Сделал рестарт. Диск слегка почистился, но все равно не до max_size: # df -h | grep ssd /dev/sdb1 220G 219G 1.8G 100% /disks/ssd01 /dev/sdc1 220G 59G 151G 28% /disks/ssd02 В error_log две сотни подобных сообщений, не знаю, есть ли связь: 2016/02/27 14:43:52 [alert] 2367#2367: *1968479 open socket #49 left in connection 5 2016/02/27 14:43:52 [alert] 2367#2367: *2286288 open socket #37 left in connection 6 2016/02/27 14:43:52 [alert] 2367#2367: *2769369 open socket #96 left in connection 27 2016/02/27 14:43:52 [alert] 2367#2367: *1987300 open socket #5 left in connection 29 2016/02/27 14:43:52 [alert] 2367#2367: *2769354 open socket #3 left in connection 35 2016/02/27 14:43:52 [alert] 2367#2367: *2286091 open socket #35 left in connection 36 2016/02/27 14:43:52 [alert] 2367#2367: aborting 26 февраля 2016 г., 12:53 пользователь Roman Arutyunyan написал: > On Fri, Feb 26, 2016 at 10:44:17AM +0300, Vadim Lazovskiy wrote: > > 25 февраля 2016 г., 21:28 пользователь Roman Arutyunyan > > написал: > > > > > > > > Попробуйте патч в аттаче. > > > > > > > > Роман, спасибо! Теперь все работает как задумано. > > > > > > > > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > > > > переполнением диска? > > > > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > > > > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, > 10-20 > > > rps). > > > > В temp в этот момент не более 20 временных файлов размером ~ 10 > > > мегабайт. В > > > > кеше все элементы <= 10 мегабайт. > > > > Незакрытых удаленных файлов на диске нет. > > > > В error log куча сообщений c No space left on device. > > > > > > Может быть такое, что кеш растет так быстро, что nginx не успевает его > > > очищать. > > > > > > Еще одна причина - рестарт воркеров. Если по какой-либо причине это > > > происходит > > > (например, из-за нестабильных 3rd-party модулей), то кеш может > остаться в > > > неконсистентном состоянии, что может приводить к описанной вами > проблеме. > > > > > > Насколько часто это у вас это происходит? > > > > > > > > В том-то и дело, что воркеры не падают и сборка без сторонних модулей. > > Глядя на strace процесса cache manager, видно, что он что-то удаляет, но > > каждый раз недостаточно. > > Суммарный размер каталогов 0-f балансирует около значения размера диска > > (220G) и до указанных 190G даже близко не опускается. > > При этом '(deleted)' файлов на диске нет и в temp файлов суммарно > мегабайт > > на 300. > > Сколько файлов cache manager удаляет за раз? > > [..] > > -- > Roman Arutyunyan > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From arut на nginx.com Sat Feb 27 16:07:49 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Sat, 27 Feb 2016 19:07:49 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> Message-ID: <20160227160749.GB25321@Romans-MacBook-Air.local> Можете прислать всю конфигурацию? Кроме того, можете проследить открытые дескрипторы у воркеров nginx и их изменение со временем? В особенности, растет ли их число и, если растет, то за счет чего именно. On Sat, Feb 27, 2016 at 06:48:29PM +0300, Vadim Lazovskiy wrote: > Добавил еще один диск, сделал reload > > proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:32m > use_temp_path=off inactive=7d max_size=210G; > proxy_cache_path /disks/ssd02 levels=1:2 keys_zone=cache_ssd02:32m > use_temp_path=off inactive=7d max_size=210G; > > split_clients $request_uri $disk { > 50% ssd01; > 50% ssd02; > } > > Первый диск переполнился, при этом cache manager вообще ничего не удалял. > Сделал рестарт. Диск слегка почистился, но все равно не до max_size: > # df -h | grep ssd > /dev/sdb1 220G 219G 1.8G 100% /disks/ssd01 > /dev/sdc1 220G 59G 151G 28% /disks/ssd02 > > В error_log две сотни подобных сообщений, не знаю, есть ли связь: > > 2016/02/27 14:43:52 [alert] 2367#2367: *1968479 open socket #49 left in > connection 5 > 2016/02/27 14:43:52 [alert] 2367#2367: *2286288 open socket #37 left in > connection 6 > 2016/02/27 14:43:52 [alert] 2367#2367: *2769369 open socket #96 left in > connection 27 > 2016/02/27 14:43:52 [alert] 2367#2367: *1987300 open socket #5 left in > connection 29 > 2016/02/27 14:43:52 [alert] 2367#2367: *2769354 open socket #3 left in > connection 35 > 2016/02/27 14:43:52 [alert] 2367#2367: *2286091 open socket #35 left in > connection 36 > 2016/02/27 14:43:52 [alert] 2367#2367: aborting > > > 26 февраля 2016 г., 12:53 пользователь Roman Arutyunyan > написал: > > > On Fri, Feb 26, 2016 at 10:44:17AM +0300, Vadim Lazovskiy wrote: > > > 25 февраля 2016 г., 21:28 пользователь Roman Arutyunyan > > > написал: > > > > > > > > > > > Попробуйте патч в аттаче. > > > > > > > > > > > Роман, спасибо! Теперь все работает как задумано. > > > > > > > > > > > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с > > > > > переполнением диска? > > > > > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под > > > > > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m, > > 10-20 > > > > rps). > > > > > В temp в этот момент не более 20 временных файлов размером ~ 10 > > > > мегабайт. В > > > > > кеше все элементы <= 10 мегабайт. > > > > > Незакрытых удаленных файлов на диске нет. > > > > > В error log куча сообщений c No space left on device. > > > > > > > > Может быть такое, что кеш растет так быстро, что nginx не успевает его > > > > очищать. > > > > > > > > Еще одна причина - рестарт воркеров. Если по какой-либо причине это > > > > происходит > > > > (например, из-за нестабильных 3rd-party модулей), то кеш может > > остаться в > > > > неконсистентном состоянии, что может приводить к описанной вами > > проблеме. > > > > > > > > Насколько часто это у вас это происходит? > > > > > > > > > > > В том-то и дело, что воркеры не падают и сборка без сторонних модулей. > > > Глядя на strace процесса cache manager, видно, что он что-то удаляет, но > > > каждый раз недостаточно. > > > Суммарный размер каталогов 0-f балансирует около значения размера диска > > > (220G) и до указанных 190G даже близко не опускается. > > > При этом '(deleted)' файлов на диске нет и в temp файлов суммарно > > мегабайт > > > на 300. > > > > Сколько файлов cache manager удаляет за раз? > > > > [..] > > > > -- > > Roman Arutyunyan > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > WBR, > Vadim Lazovskiy > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Roman Arutyunyan From vadim.lazovskiy на gmail.com Sat Feb 27 16:56:06 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Sat, 27 Feb 2016 19:56:06 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160227160749.GB25321@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> <20160227160749.GB25321@Romans-MacBook-Air.local> Message-ID: 27 февраля 2016 г., 19:07 пользователь Roman Arutyunyan написал: > Можете прислать всю конфигурацию? > > # configuration file /etc/nginx/nginx.conf: user nginx; worker_processes 32; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 1048576; #thread_pool pool_ssd01 threads=32; #thread_pool pool_ssd02 threads=32; events { worker_connections 8196; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; keepalive_timeout 65; include /etc/nginx/vhosts.d/*.conf; } # configuration file /etc/nginx/mime.types: types { ... } # configuration file /etc/nginx/vhosts.d/.conf: map $upstream_hostname $allowed { 1; 1; default 0; } log_format cache_video '$time_iso8601 $remote_addr "$request" $status $bytes_sent $upstream_cache_status'; proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:32m use_temp_path=off inactive=7d max_size=210G; proxy_cache_path /disks/ssd02 levels=1:2 keys_zone=cache_ssd02:32m use_temp_path=off inactive=7d max_size=210G; split_clients $request_uri $disk { 50% ssd01; 50% ssd02; } server { listen default_server; access_log /var/log/nginx/-cache.log cache_video; access_log /var/log/nginx/-access.log; error_log /var/log/nginx/-error.log info; root /var/www/vhosts/; resolver ; proxy_max_temp_file_size 0; location /streams/ { location ~ ^/streams/(?[^/]+)/(?.*)$ { if ($allowed = 0) { return 403; } #aio threads=pool_$disk; #sendfile on; slice 10m; limit_rate 1M; limit_rate_after 2M; proxy_pass http:// $upstream_hostname/$upstream_uri$is_args$args; proxy_set_header Host $upstream_hostname; proxy_set_header Range $slice_range; proxy_cache_min_uses 10; proxy_cache cache_$disk; proxy_cache_key $upstream_hostname$upstream_uri$slice_range; proxy_cache_revalidate on; proxy_cache_bypass $arg_start; proxy_no_cache $arg_start; proxy_cache_lock on; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403; } } } > Кроме того, можете проследить открытые дескрипторы у воркеров nginx и их > изменение со временем? В особенности, растет ли их число и, если растет, > то > за счет чего именно. > Поставил #!/bin/bash DIR="/var/log/nginx-lsof" STAMP=`date +"%Y%m%d%H%M"` out_dir="$DIR/$STAMP" [ ! -d "$out_dir" ] && mkdir -p "$out_dir" /bin/ps wwho pid,args -C nginx-debug | cut -f 1,3 -d ' ' | while read pid type do out_file="$out_dir/nginx-$type-$pid.log" lsof -p "$pid" > $out_file done в крон раз в 5 минут. Посмотрим. -------------- next part -------------- An HTML attachment was scrubbed... URL: From basil на vpm.net.ua Sat Feb 27 18:29:39 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Sat, 27 Feb 2016 20:29:39 +0200 Subject: log variable Message-ID: Всем привет, вопрос по переменным в логах хотелось вот такого: access_log /var/log/nginx/$server_name-access.log main; Получается вот такое: 2016/02/27 20:18:04 [crit] 5745#5745: *2 open() "/var/log/nginx/site-access.log" failed (13: Permission denied) while logging request, client: 192.168.88.22, server: dev4. А если файл лога создать, то нгинкс в него отлично пишет. Получается нгинкс не создает файл лога. С error лог все еще интересней - он создает лог-файл с именем $server_name-error.log Это как-то можно победить? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Sat Feb 27 18:45:15 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Sat, 27 Feb 2016 21:45:15 +0300 Subject: log variable In-Reply-To: References: Message-ID: Здравствуйте. 27 февраля 2016 г., 21:29 пользователь Vasiliy P. Melnik написал: > > access_log /var/log/nginx/$server_name-access.log main; > > Получается вот такое: > > 2016/02/27 20:18:04 [crit] 5745#5745: *2 open() > "/var/log/nginx/site-access.log" failed (13: Permission denied) while > logging request, client: 192.168.88.22, server: dev4. > > А если файл лога создать, то нгинкс в него отлично пишет. Получается > нгинкс не создает файл лога. > http://nginx.org/ru/docs/http/ngx_http_log_module.html#access_log Там хорошо написано про переменные в директиве. > С error лог все еще интересней - он создает лог-файл с именем > $server_name-error.log > Директива error_log не поддерживает переменные. -------------- next part -------------- An HTML attachment was scrubbed... URL: From basil на vpm.net.ua Sat Feb 27 20:16:12 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Sat, 27 Feb 2016 22:16:12 +0200 Subject: log variable In-Reply-To: References: Message-ID: > > http://nginx.org/ru/docs/http/ngx_http_log_module.html#access_log >> > Там хорошо написано про переменные в директиве. > Это я конечно нашел - только там не написано как файл лога создать > С error лог все еще интересней - он создает лог-файл с именем > $server_name-error.log > > Директива error_log не поддерживает переменные. > А вот это уже хуже - тогда с access.log заморачиваться не имеет смысла ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Sat Feb 27 20:27:23 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Sat, 27 Feb 2016 23:27:23 +0300 Subject: log variable In-Reply-To: References: Message-ID: 27 февраля 2016 г., 23:16 пользователь Vasiliy P. Melnik написал: > http://nginx.org/ru/docs/http/ngx_http_log_module.html#access_log >>> >> Там хорошо написано про переменные в директиве. >> > > Это я конечно нашел - только там не написано как файл лога создать > Обычно логи создает мастер-процесс, работающий из под root, поэтому все проходит гладко. Если используются переменные в имени файла лога, то этот лог-файл пытается открыть уже сам воркер, а он работает с пониженными привилегиями. Вам нужно разрешить запись в каталог с логами для пользователя, с правами которого работает nginx, например: chown nginx /var/log/nginx -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From basil на vpm.net.ua Sat Feb 27 20:32:03 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Sat, 27 Feb 2016 22:32:03 +0200 Subject: log variable In-Reply-To: References: Message-ID: > > Обычно логи создает мастер-процесс, работающий из под root, поэтому все > проходит гладко. Если используются переменные в имени файла лога, то этот > лог-файл пытается открыть уже сам воркер, а он работает с пониженными > привилегиями. > Вам нужно разрешить запись в каталог с логами для пользователя, с правами > которого работает nginx, например: > chown nginx /var/log/nginx > Понял - спасибо, но невозможность использовать переменную в error.log ломает на корню весь смысл. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Sat Feb 27 20:55:46 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 27 Feb 2016 23:55:46 +0300 Subject: =?UTF-8?B?UmU6INC/0LDQutC10YLRiyDRgSDQtNC40L3QsNC80LjRh9C10YHQutC40LzQuCA=?= =?UTF-8?B?0LzQvtC00YPQu9GP0LzQuCDQtNC70Y8g0YLQtdGB0YLQuNGA0L7QstCw0L0=?= =?UTF-8?B?0LjRjw==?= In-Reply-To: <56D14688.1090004@mva.name> References: <5DD8B48A-A85C-46F1-B652-9676EDA4640F@nginx.com> <56CE0707.2090500@mva.name> <20160224235456.GQ31796@mdounin.ru> <56D14688.1090004@mva.name> Message-ID: <20160227205545.GH31796@mdounin.ru> Hello! On Sat, Feb 27, 2016 at 12:47:36PM +0600, Vadim A. Misbakh-Soloviov wrote: > Я пытаюсь представить, как опакечивать модули для source-based distros > (кстати, fbsd ведь это тоже касается, вроде). Как-то обе идеи: что > распаковывать весь ngx вместе с каждым собираемым модулем при сборке, > что класть исходники куда-нибудь в /usr/src/nginx, кажутся мне немного > чудными, имхо. Да и distro policy ругается на такое. > А иного способа, что-то не вижу :( > Hint: билд-директории чистятся после установки пакета и упаковывания его > в тарбол. Даже если речь идёт о том, чтобы по одному собрать пару десятков разных сторонних динамических модулей, каждый раз вычищая всё за собой - распаковка nginx'а займёт в этом процессе единицы секунд: $ time tar zxf nginx-1.9.12.tar.gz 0.28 real 0.04 user 0.02 sys Тут банально нечего ловить. Попытка сделать отдельный инструмент сборки, позволяющий собирать модули без распаковки исходников nginx'а - выльется лишь в бессмысленную трату сил и времени, а равно в бессмысленное же увеличение сложности системы. Если тут на чём и можно пытаться сэкономить - то это на исключении повторного запуска configure. Но и там тоже получаются очень сомнительные цифры, даже для десятков отдельно собираемых модулей теряющиеся на фоне какой-нибудь одной единственной сборки OpenSSL. -- Maxim Dounin http://nginx.org/ From nginx на kinetiksoft.com Sat Feb 27 23:41:07 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Sun, 28 Feb 2016 02:41:07 +0300 Subject: log variable In-Reply-To: References: Message-ID: <2127877.0E0latRb5A@cybernote> В письме от 27 февраля 2016 22:32:03 пользователь Vasiliy P. Melnik написал: > > Понял - спасибо, но невозможность использовать переменную в error.log > ломает на корню весь смысл. Здравствуйте! Тут есть два выхода: 1) Писать error_log в syslog, а уже сислогом разбирать логи по тому, что идет после 'server: ' 2) Генерировать конфиги nginx каким-нибудь средством управления конфигурациями или шаблонизатором. Я вот ansible использую. С уважением. ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From basil на vpm.net.ua Sun Feb 28 07:09:52 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Sun, 28 Feb 2016 09:09:52 +0200 Subject: log variable In-Reply-To: <2127877.0E0latRb5A@cybernote> References: <2127877.0E0latRb5A@cybernote> Message-ID: 28 февраля 2016 г., 1:41 пользователь Иван написал: > В письме от 27 февраля 2016 22:32:03 пользователь Vasiliy P. Melnik > написал: > > > > > > Понял - спасибо, но невозможность использовать переменную в error.log > > > ломает на корню весь смысл. > > > > Здравствуйте! > > > > Тут есть два выхода: > > 1) Писать error_log в syslog, а уже сислогом разбирать логи по тому, что > идет после 'server: ' > > 2) Генерировать конфиги nginx каким-нибудь средством управления > конфигурациями или шаблонизатором. Я вот ansible использую. > Да, спасибо. Просто у меня нет такого количества, чтобы что-то надстраивать сверху - 15 конфигов проще руками поправить. З.Ы. но апач справляется с этой задачей ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From vadim.lazovskiy на gmail.com Mon Feb 29 06:23:13 2016 From: vadim.lazovskiy на gmail.com (Vadim Lazovskiy) Date: Mon, 29 Feb 2016 09:23:13 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160227160749.GB25321@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> <20160227160749.GB25321@Romans-MacBook-Air.local> Message-ID: Это произошло опять: /dev/sdb1 230619884 230603464 36 100% /disks/ssd01 /dev/sdc1 230619884 220280352 10323148 96% /disks/ssd02 # lsof /dev/sdb1 | wc -l 1496 # lsof /dev/sdc1 | wc -l 3377 После рестарта: /dev/sdb1 230619884 224654868 5948632 98% /disks/ssd01 По прошлому опыту, через пару часов, размер придет в норму. До следующего раза. В логах lsof, на мой взгляд, ничего криминального: точно так же, на переполненном диске дескрипторов меньше. 27 февраля 2016 г., 19:07 пользователь Roman Arutyunyan написал: > Можете прислать всю конфигурацию? > > Кроме того, можете проследить открытые дескрипторы у воркеров nginx и их > изменение со временем? В особенности, растет ли их число и, если растет, > то > за счет чего именно. > > -- WBR, Vadim Lazovskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From arut на nginx.com Mon Feb 29 08:47:01 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Mon, 29 Feb 2016 11:47:01 +0300 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> <20160227160749.GB25321@Romans-MacBook-Air.local> Message-ID: <20160229084701.GC25321@Romans-MacBook-Air.local> On Mon, Feb 29, 2016 at 09:23:13AM +0300, Vadim Lazovskiy wrote: > Это произошло опять: > > /dev/sdb1 230619884 230603464 36 100% /disks/ssd01 > /dev/sdc1 230619884 220280352 10323148 96% /disks/ssd02 > > # lsof /dev/sdb1 | wc -l > 1496 > # lsof /dev/sdc1 | wc -l > 3377 > > После рестарта: > /dev/sdb1 230619884 224654868 5948632 98% /disks/ssd01 > > По прошлому опыту, через пару часов, размер придет в норму. До следующего > раза. > В логах lsof, на мой взгляд, ничего криминального: точно так же, на > переполненном диске дескрипторов меньше. Меня больше интересовали открытые сокеты у воркеров nginx. Ну и файлы заодно. > 27 февраля 2016 г., 19:07 пользователь Roman Arutyunyan > написал: > > > Можете прислать всю конфигурацию? > > > > Кроме того, можете проследить открытые дескрипторы у воркеров nginx и их > > изменение со временем? В особенности, растет ли их число и, если растет, > > то > > за счет чего именно. -- Roman Arutyunyan From basil на vpm.net.ua Mon Feb 29 09:03:54 2016 From: basil на vpm.net.ua (Vasiliy P. Melnik) Date: Mon, 29 Feb 2016 11:03:54 +0200 Subject: =?UTF-8?B?UmU6IHNsaWNlIG1vZHVsZSDQuCBwcm94eV9jYWNoZV9taW5fdXNlcyDQsdC+0Ls=?= =?UTF-8?B?0YzRiNC1INC10LTQuNC90LjRhtGLLg==?= In-Reply-To: <20160229084701.GC25321@Romans-MacBook-Air.local> References: <20160225135333.GC7810@Romans-MacBook-Air.local> <20160225182837.GB21298@Romans-MacBook-Air.local> <20160226095322.GC21298@Romans-MacBook-Air.local> <20160227160749.GB25321@Romans-MacBook-Air.local> <20160229084701.GC25321@Romans-MacBook-Air.local> Message-ID: про нгинкс не знаю, но про ссд могу сказать, что стоит снизить заполнение дисков до 80% - не больше, а лучше еще меньше, ибо сдохнут быстро. После того, как снизите размер кеша - следует проверить работает ли трим. Могут быть проблемы, если нагрузка на запись большая. 29 февраля 2016 г., 10:47 пользователь Roman Arutyunyan написал: > On Mon, Feb 29, 2016 at 09:23:13AM +0300, Vadim Lazovskiy wrote: > > Это произошло опять: > > > > /dev/sdb1 230619884 230603464 36 100% /disks/ssd01 > > /dev/sdc1 230619884 220280352 10323148 96% /disks/ssd02 > > > > # lsof /dev/sdb1 | wc -l > > 1496 > > # lsof /dev/sdc1 | wc -l > > 3377 > > > > После рестарта: > > /dev/sdb1 230619884 224654868 5948632 98% /disks/ssd01 > > > > По прошлому опыту, через пару часов, размер придет в норму. До следующего > > раза. > > В логах lsof, на мой взгляд, ничего криминального: точно так же, на > > переполненном диске дескрипторов меньше. > > Меня больше интересовали открытые сокеты у воркеров nginx. > Ну и файлы заодно. > > > 27 февраля 2016 г., 19:07 пользователь Roman Arutyunyan > > написал: > > > > > Можете прислать всю конфигурацию? > > > > > > Кроме того, можете проследить открытые дескрипторы у воркеров nginx и > их > > > изменение со временем? В особенности, растет ли их число и, если > растет, > > > то > > > за счет чего именно. > > -- > Roman Arutyunyan > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From bazilek на gmail.com Mon Feb 29 12:44:43 2016 From: bazilek на gmail.com (Vasil Mikhalenya) Date: Mon, 29 Feb 2016 13:44:43 +0100 Subject: nginx cache In-Reply-To: References: <2117741.WdtaKZC1TT@vbart-laptop> <20150429111818.GQ32429@mdounin.ru> <20160213021624.GP70672@mdounin.ru> Message-ID: проблема была в следующем: - user-agent: приходил в одном случае из 20 из-за специфики приложения - origin ставил Vary: user-agent видимо, из-за ошибки конфигурации 2016-02-14 14:33 GMT+03:00 Vasil Mikhalenya : > следующий раз проверю, удалив файл из кеша > - для каждого proxy_cache_path по одному локейшену, кроме nginx никто с > ним ничего не делает > - т.к. воспроизводится на разных серверах, склонен считать, что проблема > не в fs > > 2016-02-13 5:16 GMT+03:00 Maxim Dounin : > >> Hello! >> >> On Fri, Feb 12, 2016 at 06:38:08PM +0300, Vasil Mikhalenya wrote: >> >> > проблема все еще воспроизводится с таким конфигом, >> > >> > location / { >> > proxy_pass http://origin.example.com; >> > proxy_set_header Host $proxy_host; >> > proxy_cache_lock on; >> > proxy_cache_lock_age 1d; >> > proxy_cache_lock_timeout 1d; >> > proxy_cache_revalidate on; >> > proxy_cache_use_stale updating; >> > proxy_cache_key "$uri"; >> > add_header Cache $upstream_cache_status; >> > add_header X-ID "{{ ansible_hostname }}"; >> > } >> > >> > за пару часов nginx просто съедает >1Tb локального диска, помогает >> только >> > остановка nginx, очистка tmp кеша, запуск nginx, иногда делать это нужно >> > несколько раз >> > >> > в логах в этот момент >> > >> > 2016/02/11 05:08:42 [crit] 9777#9777: *54423736 cache file >> > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long >> > header, client: 67.11.37.88, >> > 2016/02/11 05:08:44 [crit] 9777#9777: *54423724 cache file >> > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long >> > header, client: 67.11.37.88, >> > 2016/02/11 05:08:44 [crit] 9777#9777: *54423726 cache file >> > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long >> > header, client: 67.11.37.88, >> > 2016/02/11 05:08:44 [crit] 9777#9777: *54423729 cache file >> > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long >> > header, client: 67.11.37.88, >> > 2016/02/11 05:08:44 [crit] 9777#9777: *54423737 cache file >> > "/var/lib/nginx/cache/c1/9c9de47f28ebc598e526af36d402e8f4" has too long >> > header, client: 67.11.37.88, >> >> Судя по логам, у вас в кеше откуда-то взялся мусор. От этого >> перестаёт работать "proxy_cache_use_stale updating" (потому что >> отдавать - нечего), и proxy_cache_lock тоже не работает (потому >> что ресурс не новый, и соответственно обработка другая). В >> результате имеем то, что имеем - множество запросов идут >> одновременно на бекенд. >> >> Разбирайтесь, откуда у вас в кеше то, что там лежит. Варианты на >> вскидку: >> >> - кто-то положил туда ответ с большим заголовком через другой >> location, использовав большой proxy_buffer_size; >> >> - файловая система приказала долго жить. >> >> -- >> Maxim Dounin >> http://nginx.org/ >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Best regards, > Vasil Mikhalenya > -- Best regards, Vasil Mikhalenya ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Mon Feb 29 20:18:19 2016 From: nginx-forum на forum.nginx.org (mikhal123) Date: Mon, 29 Feb 2016 15:18:19 -0500 Subject: =?UTF-8?B?UmU6IG5naW54INC+0YLRitC10LTQsNC10YIg0LLRgdC1INC/0YDQvtGG0LXRgdGB?= =?UTF-8?B?0L7RgNC90L7QtSDQstGA0LXQvNGP?= In-Reply-To: <18213235.syk67x0ErK@vbart-laptop> References: <18213235.syk67x0ErK@vbart-laptop> Message-ID: Валентин Бартенев Wrote: > Директиву необходимо добавить на основной уровень конфигурации (the main context of your NGINX сonfiguration file), а у вас она находится на уровне http. не хотелось бы светить данные сайта, поэтому в субботу скинул на почту debug-лог при зацикливании процесса. дошел ли? если на почту не вариант, то могу выложить ссылку сюда (но тогда сначала придется обезличить его) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264948#msg-264948