njs0.8.0がリリースされました。このリリースでは、http とストリームの共有辞書とグローバル ngx プロパティが追加されています。
njs は nginx プラグインとして存在します。これは JavaScript/ECMAscript のサブセットであり、JavaScript 言語関数のほとんどを実装しています。ECMAScript 標準に完全には準拠しておらず、JavaScript の難しい部分は破棄されています。njs は V8 エンジンでは実装されていませんが、エネルギー消費が低く、nginx アプリケーション シナリオにより適した小型の仮想マシンによって実装されており、nginx が独自の字句解析セットを実装していることがわかります。
njsはnginxのプラグインとしてnginxを再コンパイルすることでインストールされます。
新しいバージョンのダウンロード リンク: http://nginx.org/en/docs/njs/install.html
主な変更点
nginxモジュール
- 変更: 0.7.10 で導入されたFetch API の禁止ヘッダーの特別な処理を削除
- 変更: 0.5.0 以降、モジュールで
http
非推奨になったr.requestBody()
andr.responseBody()
メソッドを削除します。 - 変更:モジュールは
http
フィルタリング時にr.internalRedirect()
例外をスローします - 機能: グローバル nginx プロパティの導入-
ngx.build
、ngx.conf_file_path
、ngx.error_log_path
、ngx.prefix
、およびngx.version
ngx.version_number
ngx.worker_id
- 機能:ワーカー プロセス間で共有辞書を宣言するための http および streamのディレクティブ を導入します。
js_shared_dict_zone
- 改善: njs モジュールを無効にするコンパイル時オプションを追加しました。たとえば、libxslt 関連のコードを無効にするには:
NJS_LIBXSLT=NO ./configure .. --add-module=/path/to/njs/module