Nginx 1.9.11开始支持动态模块 【Nginx Plus(Nginx Plus R9)将基于动态模块新特性进行构建】
当你编译安装Nginx 1.9.11时,会创建一个modules的子目录,用来存放动态加载模块共享对象的二进制文件,默认的路径为/usr/local/nginx/modules.
1. 加载模块
要在运行时加载模块,在全局配置中使用load_module命令,指定动态模块共享文件的路径,并以引号括起来。当重新加载配置或重启Nginx的时候,模块就会被载入。路径可以是相对路径(本例中),也可以是完整路径。
load_module “modules/ngx_http_geoip_module.so”;
load_module “modules/ngx_stream_module.so”;
2. 卸载模块
要在运行时动态的“卸载”一个模块,可以注释或删掉相对应的load_module命令,并重新加载Nginx配置。如果有其他跟这个模块相关的命令,也请确保注释或者删除掉。
3. 编译第三方模块
要编译一个已经转换完成的第三方模块为动态模块,可通过新的–add-dynamic-module参数并指定模块的路径:
./configure –add-dynamic-module=/path/to/module/source
和Nginx模块相同,动态模块的共享文件将会被安装到modules子目录中
静态编译nginx luagit模块
1,先编译安装完luagit , whereis libluajit-5.1.a 找到路径如下:
libluajit-5.1: /usr/local/lib/libluajit-5.1.a /usr/local/lib/libluajit-5.1.so
2,进入nginx目录
configure之后,编辑 objs/Makefile 文件
搜索 luajit ,找到如下行,修改成如下
-Wl,-E -lpthread -ldl -lcrypt /usr/local/lib/libluajit-5.1.a -lm ../pcre-8.33/.libs/libpcre.a ../openssl-1.0.1t/.openssl/lib/libssl.a ../openssl-1.0.1t/.openssl/lib/libcrypto.a -ldl ../zlib-1.2.8/libz.a
再执行make即可