Mercurial > hg > nginx-site
view xml/ru/docs/njs/index.xml @ 3015:3a85326ed38c
Documented Console object in njs Reference.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 03 Oct 2023 09:31:29 +0100 |
parents | cc475ba7d406 |
children | 2ff222c4ff8a |
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="34" 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="security.xml"/> </listitem> <listitem> <link doc="compatibility.xml"/> </listitem> <listitem> <link doc="cli.xml"/> </listitem> <listitem> <link doc="preload_objects.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>