1 查看现有安装模块
/usr/local/nginx/sbin/nginx -V nginx version: nginx/1.10.3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module 包含了现使用的Nginx 版本和安装的模块。
2 查找源安装包目录,如果没有也可按上面查询的现使用版去下载个一样的
3 把需要增加的模块再重新编译一下。
4 备份现用的 nginx
5 编译好的 sobj 文件夹下编译好的 nginx 文件,拷贝到 现运行的文件夹下,覆盖现运行的 nginx 文件。如果覆盖不成功可以先停止 nginx.
6 测试新的 nginx是否正确。
7 重启或者平滑重启。
以下内容转自:https://www.cnblogs.com/zhangxiaoliu/p/6183520.html
安装成功的nginx如何添加未编译模块?
在重启nginx后发生了错误,错误如下:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:117 //说明缺少http_ssl_module模块
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
解决方法如下:
步骤1:查看nginx编译安装时的命令,安装了哪些模块和nginx版本
/usr/local/nginx/sbin/nginx -V
会显示如下信息:
nginx version: nginx/1.7.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx --user=www --group=www
步骤2:重新编译 nginx-1.7.7
wget http://nginx.org/download/nginx-1.7.7.tar.gz tar zxvf nginx-1.7.7.tar.gz cd nginx-1.7.7 //configure参数要和步骤1的configure arguments一模一样 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --user=www --group=www make (没有make install)
步骤3:备份nginx的二进制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
步骤4:覆盖nginx的二进制文件
cp objs/nginx /usr/local/nginx/sbin/
会提醒如下信息:
cp:是否覆盖"/usr/local/nginx/sbin/nginx"? y
cp: 无法创建普通文件"/usr/local/nginx/sbin/nginx": 文本文件忙 (nginx二进制文件繁忙,可以停止nginx,再试一次就可以了)
步骤5:重启nginx
service nginx start (或/etc/init.d/nginx start)