您的位置:首页 > IT > 正文

njs 0.8.0 发布,nginx 的 JavaScript 脚本语言

来源:OSCHINA     时间:2023-07-07 11:22:09


(资料图片)

njs 0.8.0 已发布。此版本新增用于 http 和 stream 的共享词典 (shared dictionary),以及全局 ngx 属性。

njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。

作为 nginx 的插件,njs 的安装方式是重新编译 nginx。

新版本下载地址:http://nginx.org/en/docs/njs/install.html

主要变化

nginx modules

Change:删除 0.7.10引入的 Fetch API中对禁止 header 的特殊处理 Change:删除自0.5.0以来在http模块中已被弃用的r.requestBody()andr.responseBody()方法 Change:http模块在过滤时为r.internalRedirect()抛出异常 Feature:引入全局 nginx 属性——ngx.build,ngx.conf_file_path,ngx.error_log_path,ngx.prefix,ngx.version,ngx.version_numberngx.worker_idFeature:为http和stream引入js_shared_dict_zone指令,用于在 worker 进程之间声明共享字典 Improvement:添加 compile-time 选项以禁用 njs 模块。例如,要禁用 libxslt 相关代码:

NJS_LIBXSLT=NO ./configure .. --add-module=/path/to/njs/module

Bugfix:修复在http模块中过滤时的r.statussetter出现的问题

Bugfix:修复http模块中 Location header 的设置问题

详情查看 Changelog。

相关文章