Nginx JavaScript 模块
NJS 是一个 Nginx 模块,通过 JavaScript 脚本扩展服务器的功能,可以创建自定义服务器端逻辑和更多。
用例
- 在请求到达上游服务器之前,在 NJS 中进行复杂的访问控制和安全检查
- 操作响应头
- 编写灵活的异步内容处理程序和过滤器
请参阅示例以获取更多 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;