要为nginx配置Prometheus监控,nginx已经安装运行一段时间了,不想重新安装。通过搜索学习,整理为已安装nginx添加新模块的方法,记录如下。
以下以添加 nginx-module-vts 模块为例,安装其他模块也是同样的道理。
下载 nginx-module-vts 模块: https://github.com/vozlt/nginx-module-vts
下载后通过 xftp 等工具将下载后的文件 上传至 主机 /opt 目录下
nginx-module-vts安装
# yum -y install unzip
# unzip nginx-module-vts-master.zip
# mv nginx-module-vts-master /usr/local/
进入nginx的安装目录,查看已编译参数,并复制
# cd /usr/local/nginx/sbin/
# ./nginx -V
进入原来安装nginx的安装包(若已删除,则重新下载与当前nginx版本一致的安装包),将要增加的模块配置( --add-module=/usr/local/nginx-module-vts-master/ )添加进去,重新编译
# cd /opt/nginx-1.10.1
# ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/conf/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-mail_ssl_module --add-module=/usr/local/upstream/ --add-module=/usr/local/nginx-module-vts-master/
编译
# make
不要执行make install命令,会覆盖原来的安装目录
备份原来的nginx可执行文件
# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
将编译好的nginx复制到原始nginx的sbin目录
# cp objs/nginx /usr/local/nginx/sbin/
再执行/usr/local/nginx/sbin/nginx -V查看一下nginx的模块情况。
可以看到新的模块已经增加进来了。至此在已经安装好的Nginx上增加新模块配置完成。