此流程针对已有在运行的nginx未安装vts模块
检查nginx编译信息
- 若没有nginx环境变量,和管理员确认nginx安装路径,到sbin目录执行
- 下图所示可以看到没有vts模块,需要手动安装
- 检查9966端口号是否被占用,被占用的话和管理员确认换个端口
[root@test home]# netstat -ntlp|grep 9966
[root@test home]#
编译nginx包添加vts模块
下载对应版本包
- nginx源码包下载地址:http://nginx.org/download/
- vts模块包下载地址:https://github.com/vozlt/nginx-module-vts/tags
编译nginx,添加vts模块
# 上传包到服务器(服务器可连接广域网的话直接wget即可)
# 解压
tar -zxvf nginx-1.17.10.tar.gz nginx-module-vts-0.1.17.tar.gz
# 将vts解压后的目录移到需要放的目录(目录根据实际情况修改)
mv nginx-module-vts-0.1.17 /opt
# 编译nginx
cd nginx-1.17.10
## 生成makefile,注意需要附加上之前查询出的编译信息,在末尾添加上vts模块路径
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-pcre --add-module=/home/lua-nginx-module-0.10.9rc7 --add-module=/home/ngx_devel_kit-0.3.0 --with-stream --add-module=/opt/nginx-module-vts-0.1.17
## make命令执行构建
make
## 查看构建完成后的编译信息,看是否有vts模块
[root@test nginx-1.17.10]# ./objs/nginx -V
nginx version: nginx/1.17.10
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-pcre --add-module=/home/lua-nginx-module-0.10.9rc7 --add-module=/home/ngx_devel_kit-0.3.0 --with-stream --add-module=/opt/nginx-module-vts-0.1.17
修改nginx配置文件
- 主配置文件备份后修改
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vi /usr/local/nginx/conf/nginx.conf
http段中添加vhost_traffic_status_zone;
- 添加vts_monitor.conf
cd /usr/local/nginx/conf/conf.d
vi vts_monitor.conf
server {
listen 9966;
location /nginx_vts_status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
替换并重启nginx
# 备份并替换原有的nginx命令(路径根据实际情况修改)
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp -f ./objs/nginx /usr/local/nginx/sbin
# 重启nginx
nginx -s quit
nginx
# 检查采集端口
curl http://x.x.x.x:9966/nginx_vts_status
回滚方案
- 将备份的
/usr/local/nginx/sbin/nginx.bak
回滚 - 将备份的
/usr/local/nginx/conf/nginx.conf.bak
回滚 - 删除
/usr/local/nginx/conf/conf.d/vts_monitor.conf
- 重启nginx
nginx -s quit
nginx