Модуль nginx JavaScript

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

Сценарии использования

  • Комплексное управление доступом и проверка защиты при помощи 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;

Презентация на nginx.conf 2018

[フレーム]

AltStyle によって変換されたページ (->オリジナル) /