njs脚本语言
njs 是 JavaScript 语言的子集,允许扩展 nginx 功能。njs 是根据 ECMAScript 5.1 (严格模式)创建的,并带有一些 ECMAScript 6 及更高版本的扩展。合规性仍在不断发展。
用例
- 在请求到达上游服务器之前,njs 中进行复杂的访问控制和安全检查
- 操作响应标头
- 编写灵活的异步内容处理程序和过滤器
基本 HTTP 示例
在nginx中使用njs:
-
安装njs脚本语言
-
创建一个 njs 脚本文件,例如
http.js
. 有关 njs 属性和方法的列表, 请参阅参考资料。function hello(r) { r.return(200, "Hello world!"); } export default {hello};
-
在该
nginx.conf
文件中,启用 ngx_http_js_module模块并 使用脚本文件指定js_importhttp.js
指令:load_module modules/ngx_http_js_module.so; events {} http { js_import http.js; server { listen 8000; location / { js_content http.hello; } } }
还有一个独立的命令行实用程序,可以独立于 nginx 使用,进行 njs 开发和调试。
经过测试的操作系统和平台
- FreeBSD/amd64;
- Linux/x86、amd64、arm64、ppc64el;
- Solaris 11 / amd64;
- macOS/x86_64;