nginx模块静态编译

nginx模块静态编译

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即可