nginx已安装完毕,如何再添加第三方模块?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx已安装完毕,如何再添加第三方模块?相关的知识,希望对你有一定的参考价值。
nginx已安装完毕,能否不用再重新安装的前提下,添加第三方模块?
参考技术A很抱歉的回答你,如果是标准的nginx,目前而言,如果想增加第三方的扩展那么需要重新编译nginx增加需要的扩展才可以。
但是值得庆幸的是,淘宝官方也维护了一份nginx的开发分支版本,Tengine。淘宝官方对其做了扩展叫做动态模块加载(DSO)支持。该DSO扩展是的nginx在加入一个模块不再需要重新编译整个nginx。但是该扩展有个缺陷,一般扩展只支持最多128个,并且只支持http模块的动态扩展。
Nginx为已安装nginx动态添加模块
本篇文章主要介绍了Nginx之为已安装nginx动态添加模块的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这里以安装第三方ngx_http_google_filter_module模块为例
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so
- 下载第三方扩展模块ngx_http_google_filter_module
cd /data/software/ # git clone https://github.com/cuber/ngx_http_google_filter_module
- 查看nginx编译安装时安装了哪些模块
将命令行切换到nginx执行程序所在的目录并输入./nginx -V,具体如下:
[[email protected] sbin]# ./nginx -V nginx version: nginx/1.9.3 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.2 22 Jan 2015 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx-1.9.3 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module [[email protected] sbin]#
可以看出编译安装使用了–prefix=/usr/local/nginx-1.9.3 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module这些参数。
- 加入需要安装的模块,重新编译
这里添加-–add-module=/data/software/ngx_http_google_filter_module
具体如下:
复制代码 代码如下:
./configure --prefix=/usr/local/nginx-1.9.3 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module -–add-module=/data/software/ngx_http_google_filter_module
如上,将之前安装Nginx的参数全部加上,最后添加-–add-module=/data/software/ngx_http_google_filter_module
之后,我们要进行编译操作,如下:
make //千万不要make install,不然就真的覆盖
- 替换nginx二进制文件
备份原来的nginx执行程序 # cp /usr/local/nginx-1.9.3/sbin/nginx /usr/local/nginx-1.9.3/sbin/nginx.bak # 将新编译的nginx执行程序复制到/usr/local/nginx/sbin/目录下 # cp /opt/nginx/nginx /usr/local/nginx/sbin/
文章来源:http://www.iis7.com/b/ssyqdq/
以上是关于nginx已安装完毕,如何再添加第三方模块?的主要内容,如果未能解决你的问题,请参考以下文章