The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

В HTTP-сервер nginx встроена поддержка JavaScript

23.09.2015 22:52

На конференции nginx.conf 2015 объявлено об интеграции в кодовую базу http-сервера nginx предварительной версии модуля ngx_http_js_module с реализацией средств для выполнения скриптов, написанных на языке JavaScript. Скрипты на JavaScript могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.

Скрипт запускается посредством директивы js_run (пример) и позволяет на стороне сервера выполнять многие низкоуровневые операции с запросом, без необходимости написания отдельного модуля на языке Си. Для выполнения скриптов используется собственный движок njs с реализацией виртуальной машины для урезанного подмножества языка JavaScript, упоминаемого как nginScript. На каждый запрос запускается отдельная виртуальная машина, что позволяет обойтись без сборщика мусора.

JavaScript выбран как наиболее популярный язык программирования. Хорошим претендентом являлся Lua, но он не так широко известен в среде web-разработчиков. Необходимость создания собственной виртуальной машины JavaScript обусловлена тем, что существующие движки оптимизированы для работы в браузере, в то время как для nginx необходима реализация, рассчитанная на серверное применение.

Основными составными частями nginScript являются:

  • Виртуальная машина и компилятор байткода с очень быстрым запуском и завершением работы. Блокирующие операции, такие как подзапросы HTTP, могут быть приостановлены и возобновлены по аналогии с другими блокирующими операциями в JavaScript;
  • Синтаксис конфигурации, позволяющий встраивать блоки кода на JavaScript в файл конфигурации nginx. Подобные блоки выполняются по мере обработки HTTP-транзакций и позволяют для каждого запроса выполнять такие операции как корректировка внутренних параметров nginx, создание изощрённых условных конфигураций или изменение запроса/ответа.

Основные задачи, для которых может применяться nginScript:

  • Блокирование угроз, связанных с безопасностью. При помощи nginScript можно динамически блокировать вредоносные запросы, эксплуатирующие уязвимости в web-приложениях или ограничивать интенсивность определённых запросов;
  • Обеспечение более полного управления трафиком. Например, можно реализовать гибкие правила перенаправления трафика, использующие информацию из тела запроса и других источников;
  • Консолидация функции между приложениями через вынос дублирующейся функциональности из приложения;
  • Быстрая разработка приложений с использованием типовых библиотек функций. Код на nginScript может быть вынесен в библиотеки и использован другими пользователями;
  • Из возможных применений в будущем упоминаются такие возможности как исправления ошибок в web-приложениях, изменение бизнес-правил, персонализация работы пользователей и распределение запросов на несколько серверов с последующей агрегацией ответов от них.


  1. Главная ссылка к новости (https://www.nginx.com/blog/lau...)
Лицензия: CC-BY
Тип: Интересно / К сведению
Короткая ссылка: https://opennet.ru/43022-nginx
Ключевые слова: nginx, javascript, web
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:45, 23/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    > JavaScript выбран как наиболее популярный язык программирования, хорошим претендентом являлся Lua, но он не так широко известен в среде web-разработчиков.

    давайте будем стадом идти за ШирокоИзвестными (тм) технологиями. Лучше б луа допилили и в мейнстрим добавили

     
     
  • 2.2, Аноним (-), 23:51, 23/09/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Они всё правильно сделали. Lua непривычен и известен только небольшой горстке разработчиков. JavaScript привычен при разработке для Web и обладает синтаксисом, который сразу понятен любому кто знаком с Си или Java.
     
     
  • 3.12, Аноним (-), 00:21, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +29 +/
    Но вот пускать по VM на запрос... ну и что с ним будет при 10К запросов? Он долго сопротивлялся, но все-таки стал апачем, да? :)
     
     
  • 4.51, MPEG LA (ok), 09:57, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если это что-то типа duktape то в принципе не хуже lua будет.
     
     
  • 5.84, Аноним (-), 17:27, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > duktape

    К логопеду. Правильно «Duck Tape» или «Duct Tape», но никак не то, что ты написал. Может быть Duke Enegry Corporation (NYSE: DUK) и производит какие-то ленты, но я в этом сильно сомневаюсь.

     
     
  • 6.88, MPEG LA (ok), 18:35, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> duktape
    > К логопеду. Правильно «Duck Tape» или «Duct Tape»

    к гуглу. duktape - это маленький и легкий встраиваемый JavaScript engine.

     
  • 4.59, анонимус вульгарис (?), 11:06, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если бы он стал апачем, он бы позволял грузить только нужные модули.
     
  • 4.90, Jenko (?), 18:59, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что Apache лучше его? Ведь вроде бы Apache не умеет что-то там с картинками делать...
     
     
  • 5.92, Аноним (-), 19:07, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А что Apache лучше его?

    Апач в его дефолтном состоянии - сильно лучше нжинкса ... жpeт ресурсы при своей работе. Потому что форк на каждый запрос - это очень ресурсоемко. Nginx на каждый запрос не форкается. И вообще - ничего ресурсоемкого не делает. Но, как видим, они работают над исправлением этого упущения.

     
     
  • 6.99, Crazy Alex (ok), 02:26, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Апач в дефолтном состоянии минимум лет пять, как не prefork врубает.
     
     
  • 7.123, Гость (??), 16:09, 04/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Толку. Статика большого размера особенно по медленным соединениям как блокировала воркеры, так и блокирует.
     
  • 4.100, Crazy Alex (ok), 02:29, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Неплохо бы понимать, что там имеют в виду под VM для начала. Может быть и довольно компактной штукой, в принципе, тем более, что у них урезанное подмножество JS и сборки мусора нет.
     
  • 3.39, anonymous (??), 08:59, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +12 +/
    > JavaScript привычен при разработке для Web

    Фронтенд-мартышки пишушие под nginx. Ога-Ога.

    > обладает синтаксисом, который сразу понятен любому кто

    Очень слабый аргумент. Полностью перекрывается нужностью поддержки своего велосипеда. Причем, заметь, это урезанный js и изучать его все равно придется.

     
     
  • 4.50, Аноним (-), 09:57, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Фронтенд-мартышки пишушие под nginx. Ога-Ога.

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

     
     
  • 5.73, Аноним (-), 16:12, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > ну и пусть мартышки пишут под nginx и способствуют попуярности нормального сервера,
    > поддерживая разработчиков.

    Единственная проблема: он при этом будет работать... ну... как апач с prefork, вот.

     
  • 3.67, Ананем кто же еще (?), 13:20, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ой, непривычен, как страшно то, веб мартышки не осилят выучить новый язык?
    Реально луа учится за пол часа - http://tylerneylon.com/a/learn-lua/
    Да, там есть тонкости типа обработки ошибок, метатаблички и прочее что осиливается чуть дольше, но это и не нужно особо в nginx
     
  • 3.87, Аноним (-), 18:13, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Lua непривычен и известен только небольшой горстке разработчиков.

    Целый вечер надо разбираться в этом LUA! ДОКОЛЕ!

     
  • 2.28, nib (?), 02:06, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не знаю за остальных, но меня вполне поддержка lua давно устраивает;) Быть в мейнстриме как бы хорошо, но не критично.
     
     
  • 3.64, . (?), 11:54, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    это "некритично" кончается, когда автору левого модуля надоедает каждый раз его патчить для совместимости с новой версией.
    А такова судьба всех не-мейнстрим модулей, и не только в nginx.
     
  • 2.122, Anonimous (?), 09:55, 01/10/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    LUA нельзя допилить, ибо это не язык:

    - NULL нормального нет
    - Массивов нет (эмуляция не в счет)
    - ООП нет
    - Большими объемами RAM оперировать не может
    - Свои велосипеды там где у других языков все стандартизовано (например регулярные выражения LUA - это нечто)

    в итоге тот кто пишет на LUA: шаг влево/право должен брать в руки C

     

  • 1.3, Аноним (-), 23:54, 23/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И так неспешно они напишут свою node.js
     
     
  • 2.13, Аноним (-), 00:22, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И так неспешно они напишут свою node.js

    Ну так должен же чем-то заниматься nginx, inc? Чтобы ынтырпрайзные кастомеры бурно сpaли кирпичами от мегафич.

     
     
  • 3.45, Snaut (ok), 09:36, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >> И так неспешно они напишут свою node.js
    > Ну так должен же чем-то заниматься nginx, inc? Чтобы ынтырпрайзные кастомеры бурно
    > сpaли кирпичами от мегафич.

    ынтырпрайз покупает решения от F5 и не парится. за предложения поставить что-то типа nginx увольняют и предают анафеме. Не ынтырпрайз это решение ни разу и не будет им

     
     
  • 4.53, rshadow (ok), 10:19, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >что-то типа nginx увольняют и предают анафеме.

    Хоть и не люблю я эти срачи, но скажу: реально на nginx много бабла то не попилишь. Да и отдел страдает - чем меньше трат, тем меньше следующий бюджет. Вообщем там у них своя, параллельная вселенная...

     
     
  • 5.63, Snaut (ok), 11:46, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>что-то типа nginx увольняют и предают анафеме.
    > Хоть и не люблю я эти срачи, но скажу: реально на nginx
    > много бабла то не попилишь. Да и отдел страдает - чем
    > меньше трат, тем меньше следующий бюджет. Вообщем там у них своя,
    > параллельная вселенная...

    Нахватаю минусов, конечно. Ибо не праведное мнение тут. Но nginx не решение уровня энтерпрайз

     
     
  • 6.65, Джондо (?), 12:08, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне праведное. Почти весь ынтерпрайз УГ, по понятным причинам.
     
     
  • 7.66, Snaut (ok), 12:20, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Вполне праведное. Почти весь ынтерпрайз УГ, по понятным причинам.

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

     
     
  • 8.75, Аноним (-), 16:17, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дык нжынкс нынче охотно впаривает нжынкс плюс С поддержкой, мониторингом, и воо... текст свёрнут, показать
     
  • 8.95, mumu (??), 01:09, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Вот и мальчики-интеграторы подтянулись, пиарить свои багеты Вы такие смешные в ... текст свёрнут, показать
     
  • 6.70, ЫгиПгт (?), 14:45, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А что же тогда "решение уровня интерпрайз"? IIS?
     
     
  • 7.71, Snaut (ok), 14:52, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    http://innetworktech.com/wp-content/uploads/2014/11/Magic-Quadrant-for-Applic
     
  • 6.74, Аноним (-), 16:15, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но nginx не решение уровня энтерпрайз

    На этот случай у них есть Nginx Plus! Вы сомневались в том что бояздэшники - латентные проприерасы? А как видите - очень зря! Поэтому если вы хотите опроприетареную хрень и за сотни денег - у них есть что вам предложить :)

     
  • 4.76, Аноним (-), 16:18, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > ынтырпрайз покупает решения от F5 и не парится.

    Наверное, именно поэтому у неткрафта из всей толпени хостеров - с F5 вообще аж целая 1 шарага.

     
  • 4.98, Crazy Alex (ok), 02:25, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Расскажи, расскажи. Я этот ынтырпрайд пишу, и коллеги рядом пишут. Зоопарка хватает самого разного - от апача и вебсферы до ноды. ну и нгинкс есть периодически. И определяется это процентов на 90 тем, что нравилось тем, кто начинал проект, или что было в моде в те времена. И прел как бакэнд для джавы есть, и наоборот, и вообще - всё, что угодно.

    Так что не надо баек про "суровый ээнтерпрайз, который покупает решения". Он суров, но тем, что избранное должно быть проверено в боях кем-то другим и что коней на переправе не меняет, даже если они давно подохли. Но в остальном - вариантов хватает.

     

  • 1.4, Онаним (?), 23:59, 23/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А что, встроенного Перла уже не хватает?
     
     
  • 2.14, Аноним (-), 00:23, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > А что, встроенного Перла уже не хватает?

    Не энтерпрайзно. Инвесторы не поймут. Перл - это для бородатых хиппи.

     
     
  • 3.42, Аноним (-), 09:18, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >> А что, встроенного Перла уже не хватает?
    > Не энтерпрайзно. Инвесторы не поймут. Перл - это для бородатых хиппи.

    перл - это, простите, нечто: стандарта нет, 150k+ строк кода (и это по осторожным оценкам), непонятных никому, с пачкой родовых проблем. Встраивать ЭТО в nginx смысла мало, что и показал имеющийся модуль (который, кстати, никто не выпилиывает).

     
     
  • 4.54, rshadow (ok), 10:21, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > который, кстати, никто не выпилиывает

    Возможно потому что бородатый хиппи запилил сей чудесный сервер? ;)

     
  • 3.57, абвгдейка (ok), 11:00, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вьюноша, С тоже придумали "бородатые хиппи" :)
     
     
  • 4.77, Аноним (-), 16:23, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > вьюноша, С тоже придумали "бородатые хиппи" :)

    Просто у си относительно компактное core языка и программы на нем вполне читаемы, если это не obfuscated C code contest. Си нравится системщикам, потому что позволяет почти все то же что и ассемблер, т.е. эффективные трюки, крутые оптимизации и вклинивание в самые глубокие аспекты системной механики (ну там свое собственное управление памятью можно например написать, или там записать байт 0x20 по адресу 0x100500).

    А перл - что перл? Он системщикам на...

     
  • 4.78, Аноним (-), 16:24, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > вьюноша, С тоже придумали "бородатые хиппи" :)

    Просто у си относительно компактное core языка и программы на нем вполне читаемы, если это не obfuscated C code contest. Си нравится системщикам, потому что позволяет почти все то же что и ассемблер, т.е. эффективные трюки, крутые оптимизации и вклинивание в самые глубокие аспекты системной механики (ну там свое собственное управление памятью можно например написать, или там записать байт 0x20 по адресу 0x100500).

    А перл - что перл? Он системщикам на...й не упал. А хипстеры-скриптокидозники предпочтут какой-нибудь JS. Потому что хипстеры != хиппи.

     
  • 3.91, Jenko (?), 19:04, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А что, Perl еще не умер?
     
     
  • 4.93, Аноним (-), 19:09, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А что, Perl еще не умер?

    Punks not dead, просто они так пахнут...

     
  • 4.124, Гость (??), 16:20, 04/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А что, Perl еще не умер?

    Тебя что, в гугле забанили, школото?

     
  • 2.114, Аноним (-), 13:30, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А что, встроенного Перла уже не хватает?

      Встроенный перл умеет очень мало, в основном менять запросы, любая блокировка в этом перле приводит к залипанию всего воркера. Кроме того перлу чтобы не упасть внезапно и больно нужны нестандартные для некоторых дистров/ОС ключи сборки. Простотой и унификацией не пахнет. От njs отличается координально.

      Больше же всего в каментах доставляет позиция, скажем так, активистов опен сорца, которые выступают за то, чтобы опен-сорц софта (njs) было меньше.

     

  • 1.5, Аноним (-), 00:00, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    lua же давно поддерживается, зачем так много-то?
     
     
  • 2.68, Аноним (-), 14:10, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видимо эффективные менеджеры, перебирающие ф-ции админов за доп.зарплату не осиливают луу))
     
  • 2.115, Аноним (-), 13:38, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > lua же давно поддерживается, зачем так много-то.

    Когда соберетесь с женой делать детей - вспомний свою аргумент и скажи жене:у соседей уже есть дети, зачем так много?

     

  • 1.6, piteri (ok), 00:03, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ура, наконец-то можно будет серверный жс потыкать.
     
  • 1.7, wavedocs (ok), 00:09, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот вы с этим lua заладили. Кому будет мешать модуль, соберут из сорцов.
     
  • 1.10, Аноним (-), 00:20, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > На каждый запрос запускается отдельная виртуальная машина

    И все-таки он стал апачем... :)

     
  • 1.15, Аноним (-), 00:36, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь можно устраивать олимпиады по nginx
     
     
  • 2.20, Аноним (-), 00:53, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Теперь можно устраивать олимпиады по nginx

    Для опеннетчиков - Специальные.

     

  • 1.17, Аноним (-), 00:42, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем GC (garbage collector)?

    Лучше ARC (Automatic Reference Counting)!

     
     
  • 2.19, Аноним (-), 00:46, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    зачем вообще gc если время жизни 0.01с
     
     
  • 3.21, Аноним (-), 01:15, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Без JIT он сожрет все WCPU
     
     
  • 4.69, Аноним (-), 14:24, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Причем тут JIT, когда разговор про GC?
     
  • 2.26, Crazy Alex (ok), 01:43, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Очень лучше. Локальность - просто великолепная. А уж если многопоточность - то вообще класс, лочить рефкаунтер на каждый чих.

    Впрочем, к теме отношения это не имеет - здесь и правда аренам самое место (думаю, это и имели в виду под "запускается отдельная виртуальная машина").

     
     
  • 3.79, Аноним (-), 16:45, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Впрочем, к теме отношения это не имеет - здесь и правда аренам
    > самое место (думаю, это и имели в виду под "запускается отдельная
    > виртуальная машина").

    Я тут как-то ткнулся perf'ом в одну штуку. И что я вижу?! Там 50% - lock waiting, 25% - memcpy. Прочее - крохи по мелочи.

    Итого - проц занят почти в полку. Он делает 2 очень важные вещи: тyповэйтинг и тасовка байтиков туда-сюда. Даешь больше программ такого плана :)

     
     
  • 4.96, Crazy Alex (ok), 02:05, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так чтобы такого не было надо ж матчасть знать, а нынче низкий уровень не в моде, все надеются, что компилятор или библиотека как-нибудь выкрутятся. А они, как водится, выкручиваются самым общим, безопасным и неэффективным образом.
     

  • 1.18, Аноним (-), 00:45, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    hproxy наше все.
     
  • 1.23, Anonimous (?), 01:23, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Откуда такая тяга везде пихать этот уродливый язык?
     
  • 1.29, pavlinux (ok), 02:29, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Брюки превращаются..., превращаются брюки,... в Apache Tomcat
     
     
  • 2.31, Аноним (-), 03:10, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Предпочитаем Jetty
     
  • 2.32, Аноним (-), 05:40, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Какой томкат? Совсем наркоман?
     
     
  • 3.46, Xaionaro (ok), 09:45, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Осмелюсь предположить, что речь про какую-то не очень понятную связь между Java-сервлетами в Apache Tomcat и JavaScript в nginx.
     
     
  • 4.62, фыва1234 (?), 11:40, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    это он пошутил так
     

  • 1.30, privation (?), 02:31, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    just for fun
     
     
  • 2.80, Аноним (-), 16:46, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > just for fun

    Судя по этому треду - наброс удался на славу :)

     
     
  • 3.112, manster (ok), 01:10, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    осталось и другие язычки набросить
     

  • 1.33, Аноним (-), 05:56, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    могли бы уж совсем на JS переписать.. хотя, это уже где-то было.. ну тогда на Python.. не, - это тоже было.. ну на C то точно тоже было.. .. по ходу, не нужен этот nginx..
     
  • 1.34, Бутират (?), 07:10, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ищу немертвый неблокирующий http-сервер на замену nginx
     
     
  • 2.35, Аноним (-), 07:27, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Если только на уровне ядра OS

    systemd-httpd
    kernel-http

     
  • 2.40, DIO (?), 09:03, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    lighttpd
     
     
  • 3.81, Аноним (-), 16:48, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > lighttpd

    Там кэширование ответов бэкэнда бестолковое. Если бэкэнд отгрузит гиг - скушается гиг памяти. Назад системе он уже не вернется никогда. А если бэкэнд сдуреет и отгрузит много данных - память вообще закончится.

     
  • 2.41, Аноним (-), 09:11, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что случилось-то? новый опциональный модуль не понравился?
     
     
  • 3.117, Аноним (-), 13:49, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > а что случилось-то? новый опциональный модуль не понравился?

    Часть детей в треде еще не освоили чтение.
    Вот что случилось.

     
  • 2.44, Аноним (-), 09:36, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    nodejs express
     
  • 2.48, Xaionaro (ok), 09:48, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ищу немертвый неблокирующий http-сервер на замену nginx

    А какие именно проблемы у вас не получается решить в nginx? Не удивлюсь, если какой-нибудь «nginx-light» в Debian будет идти без данного модуля.

     
  • 2.61, manster (ok), 11:34, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    mochiweb, cowboy, yaws, httpd
     
     
  • 3.82, Аноним (-), 16:49, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > mochiweb, cowboy, yaws, httpd

    А как же mathopd? Или там Их Ответ Чембер^W Апачу - Cherokee?

     
  • 2.85, Аноним (-), 17:29, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Apache. Но ты же не осилил.
     

  • 1.36, врутмненоги (?), 08:00, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ну да, htaccess запилить - так это не по дизайну, javascript вчепятать - за здрасьте)
     
     
  • 2.47, Аноним (-), 09:46, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> htaccess

    Не надо эту пошлость в nginx тащить!

     

  • 1.37, Аноним (37), 08:05, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Для выполнения скриптов используется собственный движок njs с реализацией виртуальной машины для урезанного подмножества языка JavaScript, упоминаемого как nginScript

    Вот учитесь детки как деньги пилить надо.
    Есть lua - но же готовый для применения, ктож за него денег отвалит.
    А тут пишем свою версию js т.к. v8 не оптимизирован для серверов - аргументировано разводим инвесторов на бабло.

     
     
  • 2.43, Аноним (-), 09:30, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Так говорите, как будто это что-то плохое.
    Главное чтобы основной функционал не страдал, а там пусть хоть lisp прикручивают.
     
     
  • 3.52, анончег (?), 09:59, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и brainfuck
     
     
  • 4.83, Аноним (-), 16:49, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > и brainfuck

    Лучше SUBLEQ.

     
  • 3.94, Аноним (-), 19:54, 24/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так говорите, как будто это что-то плохое.
    > Главное чтобы основной функционал не страдал, а там пусть хоть lisp прикручивают.

    DSL же!!1
    Хотя в каждой шутке ...
    Нормальный дсл заруливает и запедаливает 99% велосипедов на "ЯП общего назначения"

     
     
  • 4.97, Crazy Alex (ok), 02:13, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ровно до того момента, когда оказывается, что:

    1) его не продумали до конца, и есть масса частных случаев, когда он делает совсем не то, что ждёшь, и эти частные случаи выскакивают в самый неудачный момент
    2) документация неполна
    3) ему постоянно надо кого-то учить.

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

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

     
  • 2.119, Аноним (-), 13:52, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Для выполнения скриптов используется собственный движок njs с реализацией виртуальной машины для урезанного подмножества языка JavaScript, упоминаемого как nginScript
    > Вот учитесь детки как деньги пилить надо.
    > Есть lua - но же готовый для применения, ктож за него денег
    > отвалит.
    > А тут пишем свою версию js т.к. v8 не оптимизирован для серверов
    > - аргументировано разводим инвесторов на бабло.

    Это ты как эксперт по распилу вещаешь или просто захотелось посчитать чужие деньги и обосрать кого-нибудь?

     

  • 1.49, Какаянахренразница (ok), 09:52, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    ... плюс монстрификация всей страны.
     
  • 1.55, Сергей (??), 10:57, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что вы на ребят наехали, кому-то это надо тот заплатил, ребята сделали, а то что код вам в подарок приехал это оказывается плохо...
     
  • 1.56, Аноним (-), 11:00, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А ещё можно заметить курсы nginScript, книги по nginScript и выдачу сертификатов nginScript
     
  • 1.60, th3m3 (ok), 11:18, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    JS имеет место быть, но он становится вторым php, с его дурной славой говнокода. Фронтендщики полезли на сервер, пишут тонны говнокода, делают библиотеки из этого и заливают в npm. Потом бросают свой говнокод и кто-то остаётся даже без поддержки всего этого барахла.
     
  • 1.72, Нанобот (ok), 16:03, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    когда планируется встроеный php?
     
  • 1.86, Аноним (-), 17:30, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Желтоватый заголовок. В официальном блоге пишут, что «nginScript is a robust implementation of much of JavaScript, including the parts most useful for configuring NGINX. Some less-used parts of JavaScript and some less relevant built-in objects are not supported». Так что там не JS, а всего лишь собственная ориентированная на конфигурирование реализация подмножества JS. А это совершенно иная песня.
     
     
  • 2.105, Аноним (-), 11:43, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Желтоватый заголовок. В официальном блоге пишут, что «nginScript is a robust implementation

    В документации и коде он назван "HTTP JavaScript module"
    http://hg.nginx.org/njs/file/11d4d66851ed/README?_ga=1.60079599.335129412.144
    и по возможностям он вполне себе обычный ранний JavaScript без привязанных к браузеру объектов.

     

  • 1.89, Ydro (?), 18:37, 24/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    nginx + node.js (io.js) >== profit > nginx + ngx_http_js_module
     
  • 1.101, freeman2 (?), 04:31, 25/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тестов сравнения производительности по сравненю с lua-nginx нет?
     
  • 1.102, tehnikpc (ok), 10:04, 25/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >встроена поддержка JavaScript

    Привет вирус :).

     
  • 1.103, Аноним (-), 11:01, 25/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы exec запилили ))), зачем javascript, ведь было бы гораздо проще асинхронно вызывать shell script сразу.
     
     
  • 2.104, Andrey Mitrofanov (?), 11:33, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >ведь было бы гораздо проще асинхронно вызывать shell script сразу.

    Они уже записали отсутствие CGI себе в фичи -- теперь нельзя!!

     

  • 1.106, username (??), 12:46, 25/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну, благодаря этой новости заменили на трафик серв на входе, профитно получилось.
     
     
  • 2.107, Andrey Mitrofanov (?), 12:51, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > профитно получилось.

    сэкономили на лицензиях, что ли?

     
     
  • 3.108, username (??), 19:45, 25/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, траф для точки терминирования вебни оказался банально удобнее, удалось избавится от некоторых оверхедов с дублированием конфигурации и избавиться от возможных косяков с кешами.
    Блобня у нас запрещена в таким местах если что.
     

  • 1.109, Аноним (-), 22:12, 25/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Lua кусок хрени в которой еле еле появились Long-и в 5.3 парни вы серьезно? Давайте так либо если вам строки надо обрабатывать тут JS или нет пофиг, а если что-то писать там в конфигах собрались, то давайте досвидание...
     
     
  • 2.111, Аноним (-), 00:00, 26/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Lua кусок хрени в которой еле еле появились Long-и в 5.3

    Если уж на то пошлО, то в JS целочисленного типа и сейчас нет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру