Spec-Zone.ru › nginx

Модуль nginx JavaScript

njs — это модуль nginx, который расширяет функциональность сервера с помощью сценариев JavaScript, позволяя создавать пользовательскую логику на стороне сервера и многое другое.

Встроенный движок JavaScript njs устарел начиная с версии 1.0.0; в новых конфигурациях следует использовать движок QuickJS.
  • Загрузка и установка
  • Изменения
  • Справочник
  • Движок JavaScript
  • Нативные модули
  • Примеры
  • Безопасность
  • Совместимость
  • Интерфейс командной строки
  • Знакомство с предварительно загруженными объектами
  • Протестированные ОС и платформы
  • ngx_http_js_module
  • ngx_stream_js_module
  • Написание кода 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API