背景: nginx作为网关层对用户的请求进行分发,但是在某些业务场景下,需要在网关层对该请求做一些处理,首先nginx是用c语言编写完成的,java(script)作为高级语言,很多程序猿长期不写c语言会比较陌生,于是,nginx 开源了njs的插件,因为js作为解释性语言,可以即时运行因此比较适合。

njs

njs作为中间语言,可以将用户的请求进行解析及处理,安装步骤省略,照着文档就好 njs中文文档

第一步:安装nginx1.9.11+

wget http://nginx.org/download/nginx-1.19.3.tar.gz

tar -zxvf nginx-1.19.3.tar.gz

cd nginx-1.19.3

./configure && make

如果期间遇到了

x:[emerg]unknown directive ssl错误 

或者

[warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead

不用担心,这个是ssl没有安装的原因,我们需要从源码上安装openssl,即切入到刚刚下载的nginx源码的路径下 ~/nginx-1.19.3/ 然后执行 ./configure --with-http_ssl_module 命令 执行完成之后如果没有报错,进入到编译好的文件夹 objs下将 nginx 文件 复制到刚刚安装的nginx下 即:

cp  /usr/local/nginx/sbin/nginx /root/nginx.bak
cp nginx /usr/local/nginx/sbin/

然后进入到nginx安装后的文件下下 reload一下 即: /usr/local/nginx/sbin/nginx -s reload

安装完成之后 我们看一下nginx的版本 执行: nginx -v 得到 file

然后进入主要的流程了,去nginx/conf下创建一个js文件,随便编写一段脚本

注:所依赖的ngx_http_js_module插件在nginx1.9.11版本下会动态安装,该版本以下的需要手动安装好才可以去应用