The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"В http-сервер nginx встроена поддержка JavaScript"
Отправлено opennews, 23-Сен-15 23:45 
На конференции nginx.conf 2015 объявлено (https://www.nginx.com/blog/launching-nginscript-and-looking-.../) об интеграции (http://hg.nginx.org/njs/rev/157dc59dae36) в кодовую базу http-сервера nginx предварительной версии модуля ngx_http_js_module с реализацией средств для выполнения скриптов, написанных на языке JavaScript. Скрипты на JavaScript могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, для динамической генерации ответа, модификации запроса/ответа или для быстрого создания заглушек с решением проблем в web-приложениях.


Скрипт запускается посредством директивы js_run (пример (http://hg.nginx.org/njs/file/11d4d66851ed/README?_ga=1.60079...)) и позволяет на стороне сервера выполнять многие низкоуровневые операции с запросом, без необходимости написания отдельного модуля на языке Си.  Для выполнения скриптов используется собственный движок njs с реализацией виртуальной машины для урезанного подмножества JavaScript, упоминаемого как nginScript. На каждый запрос запускается отдельная виртуальная машина, что позволяет обойтись без сборщика мусора.

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

nginScript состоит из двух частей:

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


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


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

-  Консолидация функции между приложениями через вынос дублирующейся функциональности из приложения;

-  Быстрая разработка приложений с использованием типовых библиотек функций. Код на nginScript может быть вынесен в библиотеки и использован другими пользователями;

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


URL: https://www.nginx.com/blog/launching-nginscript-and-looking-.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=43022

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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