njs 0.7.4 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。
作为 nginx 的插件,njs 的安装方式是重新编译 nginx。
新版本下载地址:http://nginx.org/en/docs/njs/install.html
主要变化
nginx modules:
- Feature: 添加用于配置 Fetch API 的扩展指令。目前为 http 和 stream 添加了以下指令:
- js_fetch_timeout,
- js_fetch_verify,
- js_fetch_buffer_size,
- js_fetch_max_response_buffer_size.
- Change:
r.internalRedirect()
现已支持经过转义的 URI - Bugfix: 修复 Fetch API 中对超过 8 个 header 进行响应解析时出现的问题
Core:
- Feature: 添加
njs.version_number
属性 - Feature: 为 WebCrypto API 添加与 BoringSSL 的兼容性
- Bugfix: 修复当 arr 大小在 comparator 中变更时,
Array.prototype.sort()
出现的错误 - Bugfix: 使用缓慢
this
参数修复Array.prototype.slice()
出现的错误 - Bugfix: fixed aggregation methods of
Promise
ctor with array-like object. - ……
详情。