Mercurial > hg > nginx-site
view xml/ru/docs/njs/index.xml @ 2846:fdf1464e1977
Moved banner to the external file to make partial rollout possible.
An idea is to have several banners and show them with different probability
specified by split directive in the nginx.conf
author | Sergey Budnevitch <sb@waeme.net> |
---|---|
date | Tue, 10 May 2022 18:07:27 +0400 |
parents | 8831b3d9f332 |
children | cc475ba7d406 |
line wrap: on
line source
<?xml version="1.0"?> <!-- Copyright (C) Nginx, Inc. --> <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> <article name="Сценарный язык njs" link="/ru/docs/njs/index.html" lang="ru" rev="32" toc="no"> <section id="summary"> <para> njs - это подмножество языка JavaScript, позволяющее расширить функциональность nginx. njs совместим с <link url="http://www.ecma-international.org/ecma-262/5.1/">ECMAScript 5.1</link> (строгий режим) c некоторыми расширениями <link url="http://www.ecma-international.org/ecma-262/6.0/">ECMAScript 6</link> и позже. Совместимость находится в стадии <link doc="compatibility.xml">развития</link>. </para> </section> <section id="links"> <para> <list type="bullet"> <listitem> <link doc="install.xml"/> </listitem> <listitem> <link doc="changes.xml">Изменения в njs</link> </listitem> <listitem> <link doc="reference.xml"/> </listitem> <listitem> <link url="https://github.com/nginx/njs-examples/">Примеры использования</link> </listitem> <listitem> <link doc="compatibility.xml"/> </listitem> <listitem> <link doc="cli.xml"/> </listitem> <listitem> <link id="tested_os_and_platforms">Протестированные ОС и платформы</link> </listitem> </list> </para> <para> <list type="bullet"> <listitem> <link doc="../http/ngx_http_js_module.xml"> ngx_http_js_module</link> </listitem> <listitem> <link doc="../stream/ngx_stream_js_module.xml"> ngx_stream_js_module</link> </listitem> </list> </para> <para> <list type="bullet"> <listitem> <link doc="typescript.xml"/> </listitem> <listitem> <link doc="node_modules.xml"/> </listitem> </list> </para> </section> <section id="usecases" name="Сценарии использования"> <para> <list type="bullet"> <listitem> Комплексное управление доступом и проверка защиты при помощи njs до получения запроса сервером группы </listitem> <listitem> Управление заголовками ответа </listitem> <listitem> Создание гибких асинхронных обработчиков содержимого и фильтров </listitem> </list> Подробнее о сценариях использования см. в <link url="https://github.com/nginx/njs-examples/">примерах</link> и <link url="https://www.nginx.com/blog/tag/nginx-javascript-module/">блогпостах</link>. </para> </section> <section id="example" name="Базовый пример HTTP"> <para> Чтобы использовать njs в nginx, необходимо: <list type="bullet"> <listitem> <para> <link doc="install.xml">установить</link> njs </para> </listitem> <listitem id="hello_world"> <para> создать файл сценария njs, например <path>http.js</path>. Описание свойств и методов языка njs см. в <link doc="reference.xml">справочнике</link>. <example> function hello(r) { r.return(200, "Hello world!"); } export default {hello}; </example> </para> </listitem> <listitem> <para> в файле <path>nginx.conf</path> включить модуль <link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> и указать директиву <link doc="../http/ngx_http_js_module.xml" id="js_import">js_import</link> с файлом сценария <path>http.js</path>: <example> load_module modules/ngx_http_js_module.so; events {} http { js_import http.js; server { listen 8000; location / { js_content http.hello; } } } </example> </para> </listitem> </list> Также доступна отдельная утилита <link doc="cli.xml">командной строки</link>, которая может использоваться независимо от nginx для разработки и отладки njs. </para> </section> <section id="tested_os_and_platforms" name="Протестированные ОС и платформы"> <para> <list type="bullet"> <listitem> FreeBSD / amd64; </listitem> <listitem> Linux / x86, amd64, arm64, ppc64el; </listitem> <listitem> Solaris 11 / amd64; </listitem> <listitem> macOS / x86_64; </listitem> </list> </para> </section> <section id="presentation" name="Презентация на nginx.conf 2018"> <para><video id="Jc_L6UffFOs" /></para> </section> </article>