Модуль nginx JavaScript
njs — это модуль nginx, который расширяет функциональность сервера с помощью сценариев JavaScript, позволяя создавать пользовательскую логику на стороне сервера и многое другое.
Встроенный движок JavaScript njs устарел начиная с версии 1.0.0; в новых конфигурациях следует использовать движок QuickJS.
- Загрузка и установка
- Изменения
- Справочник
- Движок JavaScript
- Нативные модули
- Примеры
- Безопасность
- Совместимость
- Интерфейс командной строки
- Знакомство с предварительно загруженными объектами
- Протестированные ОС и платформы
- Написание кода njs с использованием файлов определений TypeScript
- Использование модулей Node.js с njs
Варианты использования
- Сложный контроль доступа и проверки безопасности в 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 { # since 0.9.1 js_engine qjs; 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;
Доклад на nginx.conf 2018
© 2002-2021 Igor Sysoev
© 2011-2026 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/index.html