Реализация JavaScript под названием nginScript была запущена для предоставления дополнительных возможностей создания сценариев высокопроизводительному веб-серверу с открытым исходным кодом NGNIX.
nginScript был анонсирован в блоге создателя NGNIX Игоря Сысоева, который также продемонстрировал его на nginx.conf в этом году. По словам Сысоева, nginScript не предназначен для замены Lua или других встроенных языков в NGINX. Вместо этого эта реализация JavaScript является альтернативой существующим возможностям с идеей, что, поскольку JavaScript является самым популярным языком, он поможет людям работать с NGINX. В объявлении он пишет:
nginScript можно использовать для быстрых исправлений, что делает настройку NGINX более удобной, а операции — более эффективными. Но поскольку он работает на уровне доставки приложений, он также позволит вам реорганизовать свои приложения для большей долгосрочной стабильности, безопасности и масштабируемости.
nginScript состоит из двух частей:
Настраиваемая виртуальная машина (ВМ) и компилятор байт-кода с очень быстрым запуском и остановкой. Операции блокировки, такие как подзапрос HTTP, можно приостановить и возобновить так же, как и другие операции блокировки в JavaScript.
Синтаксис конфигурации для встраивания фрагментов JavaScript в конфигурацию NGINX. Эти фрагменты оцениваются во время выполнения по мере выполнения HTTP-транзакций. Он позволяет создавать мощные условные конфигурации, изменять запросы и ответы на лету с возможностью настраивать внутренние операции NGINX специально для каждого запроса.
С его текущими возможностями потенциальные возможности использования nginScript включают:
Защита от угроз безопасности — nginScript может динамически реагировать на недобросовестные источники трафика, ограничивая скорость или отклоняя запросы.
Получите более полный контроль над трафиком — вы можете реализовать гибкий контроль над маршрутизацией трафика, используя информацию в запросе или других источниках.
Консолидируйте функции между приложениями — вы можете перенести дублированные функции из приложений на платформу доставки приложений.
Ускорьте разработку приложений с помощью библиотек функций — код nginScript можно разрабатывать, повторно использовать, улучшать, хранить и публиковать.
Сысоев добавляет:
В будущем мы добавим в nginScript дополнительные возможности и расширим его область действия, чтобы вы могли использовать его для таких задач, как исправление ошибок приложений, изменение бизнес-правил, персонализация взаимодействия с пользователем, а также сегментирование запросов между серверами и агрегирование ответов.