nginx动态编译njs

看网上没啥人玩,记录一下。

踩了2个坑,一是需要xslt,二是pcre2, 主要看之前编译nginx用的那个pcre版本

大致流程

apt install libxml2-dev libxslt1-dev git curl  libpcre2-dev
wget http://nginx.org/download/nginx-1.28.0.tar.gz
tar zxf nginx-1.28.0.tar.gz
cd nginx-1.28.0
git clone https://github.com/nginx/njs
./configure --with-compat --add-dynamic-module=./njs/nginx  
make modules
cp objs/ngx_http_js_module.so /usr/lib/nginx/modules/ngx_http_js_module.so
echo "load_module modules/ngx_http_js_module.so;" >  /etc/nginx/modules-enabled/50-mod-njs.conf
nginx -t

确定pcre版本

 ldd /usr/sbin/nginx | grep pcre

 

njs确定加载后在http字段引入

http {
js_import my_ua.js;
}

location再调用写好的js内容就可以玩耍了

    location / {
        js_content my_ua.checkRequest;
    }

直接官方仓库安装的就更简单了。