动态安装介绍
已安装好的Nginx服务,后续想使用未被编译的第三方模块提供服务。在无需卸载或者覆盖原有Nginx服务下安装模块。
特别提示:
此处的动态安装, 并非Nginx1.9.11之后版本所提到的动态模块。如有误解请忽略。
静态模块与Nginx
如果要给Nginx增加一个模块,需要将模块与源代码一起编译进Nginx二进制文件,而且不管你是否愿意,每次打开Nginx都会加载此模块。
另外也很难在操作系统发行版的包中为每个用户创建自定义的Nginx二进制文件。
动态模块仍然需要和Nginx二进制文件一起编译可选模块,但是会为每一个动态加载模块创建一个独立的共享对象,通过Nginx配置文件中的命令来启用和禁用在运行时加载共享对象。
load_module modules/ngx_mail_module.so;
安装第三方模块
1、 下载解压好所需模块。
2、 查看原有Nginx已安装模块
命令: nginx -V (大写的V)
可以看到,首次安装Nginx已经启用了这些模块。
3、 加入新模块安装,重新编译。
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-ld-opt='-ljemalloc' -add-module=第三方模块的目录地址
注意使用 -add-module 的方式继续在原有配置的基础上添加配置项,再进行编译。
提示: 此处的./configure 是在nginx源码文件的目录下执行的。
4、 编译 【only make!!】
make
make会编译出新的二进制服务文件, 而不是make install 替换整个nginx服务目录。
5、 替换原Nginx服务下的nginx脚本文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak // 此时是备份
cp ./XXX/nginx /usr/local/nginx/sbin/ // 将源码文件中编译后的nginx二进制文件复制到nginx服务目录下。