Nginx动态添加模块 平滑升级
已经安装好的Nginx动态添加模块
说明:
已经安装好的Nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 这里已安装第三方nginx-rtmp-module模块为例
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so
具体操作步骤:
(1)下载第三方扩展模块nginx-rtmp-module
# cd /home/work/software/ # wget https://github.com/arut/nginx-rtmp-module/archive/master.zip # unzip master.zip # ls nginx-rtmp-module-master/
(2)查看nginx编译安装时安装了哪些模块
# /opt/nginx-1.9.5/sbin/nginx -V nginx version: nginx/1.9.5 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) built with OpenSSL 1.0.1g 7 Apr 2014 TLS SNI support enabled configure arguments: --prefix=/opt/nginx-1.9.5 --with-pcre=/home/work/software/pcre-8.38 --with-zlib=/home/work/software/zlib-1.2.8 --conf-path=/opt/nginx-1.9.5/conf/nginx.conf --pid-path=/opt/nginx-1.9.5/conf/nginx.pid --with-http_ssl_module --with-openssl=/home/work/software/openssl-1.0.1g --add-module=/home/work/software/headers-more-nginx-module-0.23 --add-module=/home/work/software/nginx-http-concat-master --with-http_gzip_static_module 可以看出编译安装使用了--prefix=/opt/nginx-1.9.5 --with-pcre=/home/work/software/pcre-8.38 --with-zlib=/home/work/software/zlib-1.2.8 --conf-path=/opt/nginx-1.9.5/conf/nginx.conf --pid-path=/opt/nginx-1.9.5/conf/nginx.pid --with-http_ssl_module --with-openssl=/home/work/software/openssl-1.0.1g --add-module=/home/work/software/headers-more-nginx-module-0.23 --add-module=/home/work/software/nginx-http-concat-master --with-http_gzip_static_module这些模块。
(3)加入需要安装的模块,重新编译,如这里添加–add-module=/home/work/software/nginx-rtmp-module-master
# cd /home/work/software/nginx-1.9.5 //进入到nginx之前安装的目录 # ./configure --prefix=/opt/nginx-1.9.5 --with-pcre=/home/work/software/pcre-8.38 --with-zlib=/home/work/software/zlib-1.2.8 --conf-path=/opt/nginx-1.9.5/conf/nginx.conf --pid-path=/opt/nginx-1.9.5/conf/nginx.pid --with-http_ssl_module --with-openssl=/home/work/software/openssl-1.0.1g --add-module=/home/work/software/headers-more-nginx-module-0.23 --add-module=/home/work/software/nginx-http-concat-master --with-http_gzip_static_module --add-module=/home/work/software/nginx-rtmp-module-master # make //注意:千万不要make install,不然真的就GG了
(4)替换nginx二进制文件
# /etc/init.d/nginx stop # cp /opt/nginx-1.9.5/sbin/nginx /opt/nginx-1.9.5/sbin/nginx.bak # cp ./objs/nginx /opt/nginx-1.9.5/sbin/
(5)再次确认是否安装成功
# /opt/nginx-1.9.5/sbin/nginx -V nginx version: nginx/1.9.5 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) built with OpenSSL 1.0.1g 7 Apr 2014 TLS SNI support enabled configure arguments: --prefix=/opt/nginx-1.9.5 --with-pcre=/home/work/software/pcre-8.38 --with-zlib=/home/work/software/zlib-1.2.8 --conf-path=/opt/nginx-1.9.5/conf/nginx.conf --pid-path=/opt/nginx-1.9.5/conf/nginx.pid --with-http_ssl_module --with-openssl=/home/work/software/openssl-1.0.1g --add-module=/home/work/software/headers-more-nginx-module-0.23 --add-module=/home/work/software/nginx-http-concat-master --with-http_gzip_static_module --add-module=/home/work/software/nginx-rtmp-module-master
至此、nginx就重新编译添加模块成功了。