转载自:https://blog.51cto.com/u_10272167/2730438

今天想通过zabbix实现一个nginx监控,发现以来的模块–with-http_stub_status_module没有安装,需要进行编译一下。

这里记录下模块单独安装步骤,就以–with-http_stub_status_module为例。

  • 查看当前nginx编译参数:
[root@nginx1 nginx-1.14.0]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx

 

查看没有我们需要的模块–with-http_stub_status_module,需要单独安装一下。

  • 添加未编译安装模块(停掉服务):
[root@nginx1 nginx-1.14.0]# /etc/init.d/nginx stop
Stopping nginx (via systemctl): [ 确定 ]

 

  • 使用参数重新配置:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module                #重新初始化

make                 #编译

 

注意:千万不要make install,否则就是覆盖安装

  • 替换nginx二进制文件 ,当前nginx文件最好备份下,避免出问题:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx

 

  • 重启下nginx服务,重新查看模块加载情况:
[root@nginx1 nginx-1.14.0]# /etc/init.d/nginx start
Starting nginx (via systemctl): [ 确定 ]


[root@nginx1 nginx-1.14.0]# /usr/local/nginx/sbin/nginx -V 
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module

 

模块已安装搞定。

总结:安装nginx安装第三方模块实际上是使用–add-module重新安装一次nginx,不要make install,而是直接把编译目录下objs/nginx文件直接覆盖老的nginx文件。如果你需要安装多个nginx第三方模块,你只需要多指定几个相应的–add-module即可。

备注:重新编译的时候,记得一定要把以前编译过的模块一同加到configure参数里面。