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 模块,并使用http.js
脚本文件指定 js_import 指令: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;