Re: javascript in nginx
How to operate with response.body ? Need to change it via JS, not Lua. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,261794,266547#msg-266547 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On 09/23/15 21:53, Igor Sysoev wrote: Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. Полезно было бы в JS-интерфейсе к nginx иметь возможность: 1. прочитать произвольный локальный файл (аналог sysread в перле) 2. ngx_http_map_uri_to_path() - в ngx_http_perl_module это $r->filename 3. отдать кусочек заданного файла текущим сконфигурированным методом (например через sendfile если в данном location действует директива senfile on). ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On Thursday 24 September 2015 00:07:46 Михаил Монашёв wrote: > Здравствуйте, Igor. > > А как текущая иерархия у $r (ответ - это объект запроса) будет > работать с HTTP v2? Если я правильно понимаю, то в HTTP v2 есть не > только запрос и ответ. Возможна и посылка данных, которые никак не > связаны с запросом, а привязаны к соединению. [..] Нету там такого. Даже пресловутый server push, есть ни что иное, как порождение новых запросов на стороне сервера в результате какого-то клиентского запроса. -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On Friday 25 September 2015 13:41:44 denis wrote: > 24.09.2015 20:11, Gena Makhomed пишет: > > > > Средний сайт только за хостинг в год платит $1500/yr > > или даже больше, так что цены там не очень большие. > "средний сайт" за хостинг платит 30-50 долларов, даже если это > выделенный сервер, спасибо хецнеру. И даже если аренда юнита - мы платим > по 3к за юнит, по курсу 65р это что-то около 40 долларов. И увеличивать > расходы в 4 раза только ради прокси... оно того не стоит, совсем. > Профильных сайтов, кому нгинх реально нужен как воздух - процентов 5 в > "средних сайтах", если не 1% вообще. Всякие крупные видеохостинги и проч > - другая сфера. > > > Учитывая то, насколько Lua-модуль кривой и сложный, > > - такая цена $1500/yr вполне оправдана за его поддержку. > $15/y - за модуль я ещё могу понять и даже обосновать, но даже 150 оно > не стоит вообще. > > Про кривость пожалуйста подробнее. [..] Факт: объем кода только одного лишь Lua-модуля составляет четвертую часть NGINX со всеми 60+ модулями, включая mail и stream. Количество хаков там таково, что различные части модуля ломаются чуть ли не каждый новый релиз. Вот недавно модуль в очередной раз сломался от замены SPDY на HTTP/2, ибо содержит соответствующие вставки. И 46 (!) новых директив - это совсем не то, что хочется видеть в качестве легкого и понятного интерфейса. > Более того, он уже есть и бесплатен, потому что написан даже не командой > нгинха, а командой китайцев из taobao. Продавать его после этого было бы > свинством. Собственно, там он уже и отлажен и проверен, на действительно > хайлоаде. [..] http://www.youtube.com/watch?v=mjq1YDaPxt8 -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
Прошу прощения, но два момента, которые мне режут глаз: > нгинх eNGINe X Как вы произносите ити свои "нгинхи" и не ломаете язык — я, вот, сколько не бьюсь, понять не могу. Буквосочетания совсем не естественные. > командой китайцев из taobao. Не сотря на то, что писаться он начинал там, сейчас у TaoBao свой форк NgX и Lua там постольку поскольку. А товарищи, которые пилят Lua-модуль (и NginX'овый бандл OpenResty) работают в CloudFlare. -- Best regards, mva signature.asc Description: This is a digitally signed message part. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
24.09.2015 20:11, Gena Makhomed пишет: Средний сайт только за хостинг в год платит $1500/yr или даже больше, так что цены там не очень большие. "средний сайт" за хостинг платит 30-50 долларов, даже если это выделенный сервер, спасибо хецнеру. И даже если аренда юнита - мы платим по 3к за юнит, по курсу 65р это что-то около 40 долларов. И увеличивать расходы в 4 раза только ради прокси... оно того не стоит, совсем. Профильных сайтов, кому нгинх реально нужен как воздух - процентов 5 в "средних сайтах", если не 1% вообще. Всякие крупные видеохостинги и проч - другая сфера. Учитывая то, насколько Lua-модуль кривой и сложный, - такая цена $1500/yr вполне оправдана за его поддержку. $15/y - за модуль я ещё могу понять и даже обосновать, но даже 150 оно не стоит вообще. Про кривость пожалуйста подробнее. Более того, он уже есть и бесплатен, потому что написан даже не командой нгинха, а командой китайцев из taobao. Продавать его после этого было бы свинством. Собственно, там он уже и отлажен и проверен, на действительно хайлоаде. Проблема в том, что модуль нужен, как минимум как thread-safe, быстрый, и с дополнительными плюшками вроде лёгкого парсинга post. Также с ним можно выкинуть ряд левых модулей типа всяких echo. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
24.09.2015, 21:03, "Vadim A. Misbakh-Soloviov" : > А как Вы думаете, зачем в 1.9 (возможно, уже в .6, хотя не берусь > предсказывать) хотят сделать динамические модули? :D Чтобы пользователи поломали голову, почему после обновления nginx вдруг начал падать (например, потому что установленные сторонние модули были собраны с предыдущей версией) -- Regards, Konstantin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
А как Вы думаете, зачем в 1.9 (возможно, уже в .6, хотя не берусь предсказывать) хотят сделать динамические модули? :D signature.asc Description: This is a digitally signed message part. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On 24.09.2015 17:41, Aleksandr Sytar wrote: А вот если бы Lua-модуль взяли "в коробку", это, да, было бы хорошо (но и онтопик не в коробке, смею заметить) Lua-модуль уже есть "в коробке" nginx-plus-extras https://www.nginx.com/products/technical-specs/ правда цены там... $1500/yr Так там не за модули берут, а за саппорт - чтобы модуль работал как надо Ясное дело, ведь иначе зачем вам модуль, который не будет работать как надо? Средний сайт только за хостинг в год платит $1500/yr или даже больше, так что цены там не очень большие. Учитывая то, насколько Lua-модуль кривой и сложный, - такая цена $1500/yr вполне оправдана за его поддержку. Просто, насколько я понимаю, нельзя купить отдельно только те модули и только те функции, которые нужны, не переплачивая за все остальное, что вообще не нужно. Например, если кому-то нужен только модуль реализующий статистику http://demo.nginx.com/status.html и не нужны все остальные модули и функциональность из nginx-plus - покупать статистику за $1500/yr будет слишком дорого. Есть открытый модуль для сбора статистики о работе nginx https://github.com/nginx-modules/ngx_http_json_status_module но там пока что реализованы не все возможности, которые есть в nginx-plus. Возможно доделать этот открытый модуль до полнофункционального состояния - только вопрос времени? Интересным для пользователей вариантом было бы открыть модуль статистики и перенести его из nginx-plus в nginx, - ведь вряд ли это есть основной модуль из-за которого люди покупают поддержку, так что revenue от открытия этого модуля по идее не должно очень сильно упасть. P.S. В OpenVZ приняли решение использовать интересную модель - базовая версия Virtuozzo 7 будет полностью бесплатной и свободно доступной всем желающим, а платную функциональность можно будет докупать отдельными модулями по мере необходимости: http://blog.odin.com/serviceprovider/2015/7/14/coming-soon-a-more-open-platform-for-openvz Coming Soon: A More Open Platform for OpenVZ http://habrahabr.ru/company/parallels/blog/259385/ Зачем мы открыли код Virtuozzo Для OpenVZ - это точно имеет смысл, потому что лучше им иметь пользователей, которые купять некоторе фичи, чем не купят вообще ничего и будут использовать полностью бесплатный и полностью открытый вариант OpenVZ, потому что полная версия стоит слишком дорого и 80-90% функциональности платной версии всем не нужно, а ради тех 10-20% переплачивать столько денег просто нет смысла и проще будет использовать OpenVZ. Но если nginx начнет лицензирование модулей по такой же схеме - не могу сказать, вырастет от этого revenue или наоборот упадет. Тем более, что пропатчить один бинарник и отучить его от проверки лицензии - это совсем не сложно и даже можно сказать что тривиально. Тогда воровство модулей может расцвести буйным цветом и revenue упадет. -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
24 сентября 2015 г., 17:17 пользователь Gena Makhomed написал: > On 24.09.2015 10:05, Vadim A. Misbakh-Soloviov wrote: > > Лучше бы на lua это время потратили. >>> >> >> А зачем его тратить, если Yichun Zhang уже всё сделал и всё прекрасно >> работает? >> >> // А вот если бы Lua-модуль взяли "в коробку", это, да, было бы хорошо >> (но и >> онтопик не в коробке, смею заметить) >> > > Lua-модуль уже есть "в коробке" nginx-plus-extras > > https://www.nginx.com/products/technical-specs/ > > правда цены там... $1500/yr Так там не за модули берут, а за саппорт - чтобы модуль работал как надо ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On 24.09.2015 10:05, Vadim A. Misbakh-Soloviov wrote: Лучше бы на lua это время потратили. А зачем его тратить, если Yichun Zhang уже всё сделал и всё прекрасно работает? // А вот если бы Lua-модуль взяли "в коробку", это, да, было бы хорошо (но и онтопик не в коробке, смею заметить) Lua-модуль уже есть "в коробке" nginx-plus-extras https://www.nginx.com/products/technical-specs/ правда цены там... $1500/yr -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
24.09.2015 10:05, Vadim A. Misbakh-Soloviov пишет: Лучше бы на lua это время потратили. А зачем его тратить, если Yichun Zhang уже всё сделал и всё прекрасно работает? модуль может и работает, но штатно его нет, поэтому о нём мало кто знает. А ведь это пожалуй единственный лёгкий способ обработки POST данных в запросе (то, что на перле - пара файлов и пара кб кода, на луа 3 строки). // А вот если бы Lua-модуль взяли "в коробку", это, да, было бы хорошо (но и онтопик не в коробке, смею заметить) Это необходимо, а не просто хорошо. А перл, который идёт штатно, и у которого до сих пор статус "нестабильный", выпилить к чертям. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
> Лучше бы на lua это время потратили. А зачем его тратить, если Yichun Zhang уже всё сделал и всё прекрасно работает? // А вот если бы Lua-модуль взяли "в коробку", это, да, было бы хорошо (но и онтопик не в коробке, смею заметить) -- Best regards, mva signature.asc Description: This is a digitally signed message part. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
Здравствуйте, Igor. А как текущая иерархия у $r (ответ - это объект запроса) будет работать с HTTP v2? Если я правильно понимаю, то в HTTP v2 есть не только запрос и ответ. Возможна и посылка данных, которые никак не связаны с запросом, а привязаны к соединению. И даже если я ошибаюсь по поводу HTTP v2, то в будущем будет именно так: соединение, по нему одновременно идёт много пачек данных в одну сторону и много пачек данных в другую сторону. И все они могут иметь, а могут и не иметь связи. Например, по таймауту что-то шлётся в браузер. Или по стороннему событию: пришло новое сообщение в чат. -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
Здравствуйте, Igor. А ещё примеры конфигов с кодом nginscript есть? Судя по исходникам там куча всего реализовано, но не всё из JavaScript-а вроде. -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
Здравствуйте, Igor. > Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. Было бы интересно иметь возможность смотреть, во что преобразуется написанный код. Судя по http://hg.nginx.org/njs/file/157dc59dae36/njs/njs_disassembler.c он вполне читаем. Может на нём и писать можно? :-) -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
Здравствуйте, Igor. > Репозитарий: > http://hg.nginx.org/njs/ > Примеры использования: > https://www.nginx.com/blog/launching-nginscript-and-looking-ahead > Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. В примерах вместо return s; пишется просто s; , что не очень наглядно. Сложно глазами найти места, где происходит выход и возврат значения. В примерах, да и вообще, ИМХО возврат значения лучше писать явно с return . $r.method выглядит по перловому как-то. :-) Вариант с заранее предопределёнными переменными req и resp тоже не очень, но в Ноде такие имена прижились и понятны. Было бы удобно весь код скрипта заключать не в двойные кавычки, а то помнить, что надо писать \" в коде неудобно. Хотя это по синтаксису и совместимо с синтаксисом конфига, но именно программировать геморно и будет вести к ошибкам. Может предусмотреть ещё какой-то символ для задания начала и конца значения в конфиге? Например, те же {} тут будут более чем уместны и понятны. Было бы здорово, наверное, писать что-то вроде js_set scripts/set_headers.js js_run scripts/print_headers.js Тут http://hg.nginx.org/njs/file/11d4d66851ed/README видимо ошибка: res.contentLength = 11; , ибо дли ответа не 11 байт. В какой кодировке пишутся скрипты? Какие функции из обычного JavaScript-а поддерживаются? Будет ли язык упрощённым JS-ом или может пойти в сторону Go или Dart, например? Можно ли вместо кода писать скомпиленный бинарный код, чтобы можно было скрывать исходники и затруднять их чтение? Вообще, это конечно прорыв. И то, что пишется своя VM - это очень правильно. И язык выбран тоже правильно. В JS подкупает простота и популярность. Я очень боялся, что выйдет Нода, которая из гомна и палок. И рад, что вышло иначе. Вышел nginx. :-) -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
On 09/23/2015 09:53 PM, Igor Sysoev wrote: Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. Лучше бы на lua это время потратили. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
> А вот сам тренд, приведший JavaScript в серверную часть — мне, всё-таки, > странен. V8 - хорошая VM ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: javascript in nginx
В письме от Wednesday 23 September 2015 21:53:07 пользователь Igor Sysoev написал: > Интересно ваше мнение об JS-интерфейсе к внутренностям nginx’а. С точки зрения совреенных трендов — всё хорошо, да и к тому же "больше плагинов, хороших и разных" (особенно в преддверии поддержки динамической загрузки (и, я надеюсь, сборки) плагинов) А вот сам тренд, приведший JavaScript в серверную часть — мне, всё-таки, странен. -- Best regards, mva signature.asc Description: This is a digitally signed message part. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru