Сценарный язык njs
njs - это подмножество языка JavaScript, позволяющее расширить функциональность nginx. njs совместим с ECMAScript 5.1 (строгий режим) c некоторыми расширениями ECMAScript 6 и позже. Совместимость находится в стадии развития.
- Загрузка и установка
- Изменения в njs
- Справочник
- Примеры использования
- Совместимость
- Интерфейс командной строки
- Протестированные ОС и платформы
Сценарии использования
- Комплексное управление доступом и проверка защиты при помощи njs до получения запроса сервером группы
- Управление заголовками ответа
- Создание гибких асинхронных обработчиков содержимого и фильтров
Подробнее о сценариях использования см. в примерах и блогпостах.
Базовый пример HTTP
Чтобы использовать njs в nginx, необходимо:
-
установить njs
-
создать файл сценария njs, например
http.js
. Описание свойств и методов языка njs см. в справочнике.function hello(r) { r.return(200, "Hello world!"); } export default {hello};
-
в файле
nginx.conf
включить модуль ngx_http_js_module и указать директиву js_import с файлом сценарияhttp.js
:load_module modules/ngx_http_js_module.so; events {} http { js_import http.js; server { listen 8000; location / { js_content http.hello; } } }
Также доступна отдельная утилита командной строки, которая может использоваться независимо от nginx для разработки и отладки njs.
Протестированные ОС и платформы
- FreeBSD / amd64;
- Linux / x86, amd64, arm64, ppc64el;
- Solaris 11 / amd64;
- macOS / x86_64;