前言
有时候要使用已安装好的Nginx的功能时,突然发现缺少了对应模块,故需对其进行动态添加模块。
操作
# 查看已安装模块
[root@kazihuo ~]# nginx -V
nginx version: nginx/1.12.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --prefix=/usr/local/nginx-1.12.1/
# 停止服务
[root@kazihuo ~]# pkill nginx
# 重新编译(红色内容是添加模块)
# 进入到第一次部署Nginx的编译目录,即Nginx的包解压后的目录下
[root@kazihuo ~]# cd /kzh/pkg/nginx-1.12.1
[root@kazihuo ~]#./configure --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_modul --with-stream --with-stream_ssl_module --prefix=/usr/local/nginx-1.12.1/
[root@kazihuo /kzh/pkg/nginx-1.12.1]# make
# make完后千万不要make install,否则将覆盖原有!
# 替换二进制文件
[root@kazihuo /kzh/pkg/nginx-1.12.1]# mv /usr/local/nginx-1.12.1/sbin/nginx /usr/local/nginx-1.12.1/sbin/nginx.bak
[root@kazihuo /kzh/pkg/nginx-1.12.1]# cp objs/nginx /usr/local/nginx-1.12.1/sbin/nginx
# 启动并查看
[root@kazihuo ~]# nginx
[root@kazihuo ~]# nginx -V
nginx version: nginx/1.12.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --prefix=/usr/local/nginx-1.12.1/
说明
若需要添加的是第三方模块,可先下载模块,并在重新编译时带--add-module参数即可。
# cd /tmp
# git clone https://github.com/cuber/ngx_http_google_filter_module
# ./configure --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_modul --with-stream --with-stream_ssl_module --prefix=/usr/local/nginx-1.12.1/ --add-module=/tmp/ngx_http_google_filter_module