目 录CONTENT

文章目录

Nginx使用njs

简中仙
2022-09-07 / 0 评论 / 0 点赞 / 169 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-07,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!

njs scripting language 是 nginx 官方推出的一个基于 JavaScript 的扩展,类似 ngx_lua (openresty) 模块,启用后可以通过 JS 脚本来扩展 nginx 功能。

njs 只支持部分 JS 语法,但也足以实现自定义鉴权、修改请求&响应、A/B Test、缓存控制、加解密、子请求等网关功能。

默认情况下是nginx并没包含njs模块,需要独立安装。 本文主要介绍从源码安装的方法。

下载 njs 源码并解压

wget https://github.com/nginx/njs/archive/refs/tags/0.7.6.tar.gz
tar zxf 0.7.6.tar.gz

进入 nginx 源码目录

cd nginx-1.20.2

查看和复制当前使用 nginx 编译参数

nginx -V

使用--add-module配置参数从nginx根目录编译模块

./configure 刚才复制的编译参数 --add-dynamic-module=path-to-njs/nginx

编译

make modules

编译完成后在当前 nginx 源码目录的 objs 目录下会有 njs 的两个模块文件,复制 so 文件到 nginx 安装目录(即 nginx -V 查看的 --prefix 参数)的 modules 目录下。

ngx_http_js_module.so
ngx_stream_js_module.so

在 nginx.conf 文件添加代码载入需要的模块

load_module modules/ngx_http_js_module.so;
0

评论区