已安装nginx动态添加模块

说明:
已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢?

具体:
这里以安装第三方ngx_http_google_filter_module模块为例
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so
1. 下载第三方扩展模块ngx_http_google_filter_module

# cd /data/software/# git clone https://github.com/cuber/ngx_http_google_filter_module

登录后复制

 
2. 查看nginx编译安装时安装了哪些模块

#/usr/local/nginx/sbin/nginx -V

登录后复制

version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/data/software/ngx_http_substitutions_filter_module 可以看出编译安装使用了--prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/data/software/ngx_http_substitutions_filter_module这些参数。--add-module=/data/software/ngx_http_substitutions_filter_module是之前编译添加ngx_http_substitutions_filter_module模块时添加

登录后复制

 
3. 加入需要安装的模块,重新编译,如这里添加–add-module=/data/software/ngx_http_google_filter_module

   找到安装包或者新下载该版本的安装包

# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/data/software/ngx_http_substitutions_filter_module --add-module=/data/software/ngx_http_google_filter_module# make    //千万不要make install,不然就真的覆盖了

登录后复制

 
4. 替换nginx二进制文件:

# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak# cp ./objs/nginx /usr/local/nginx/sbin/

登录后复制

5. 如果不是安装第三方插件:

--add-module替换成--with即可,例如安装图片缩放插件

登录后复制

--with-http_image_filter_module

另外附上image_filter的配置

登录后复制

location ~* \.(gif|png|jpg|jpeg)@(\d+)w_(\d+)h$ {
          rewrite ^(.+)@(\d+)w_(\d+)h$ $1 break;
          image_filter resize  $2 $3;
          image_filter_buffer  10M;
        }

登录后复制

# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak# cp ./objs/nginx /usr/local/n

原创文章,作者:Zhu, Yuanyuan,如若转载,请注明出处:https://www.yidc.net/archives/16206