一、概述

  除nginx官网源码提供的各种模板,nginx还有第三方模块。官方文档中也列出了nginx的很多第三方模块,除官网之外,还有很多的有用的模块也能在Github上找到。

官网第三方模块地址:https://www.nginx.com/resources/wiki/modules/

公司前端使用的是nginx代理,反向代理了很多域名,流量无法进行区分,nginx本身不支持按域名统计,需要安装第三方模块nginx-module-vts

二、配置安装

2.1 因上线的业务正在运行着nginx程序,需要先查看当前nginx编译参数。

# nginx -V
Tengine version: Tengine/2.2. (nginx/1.8.)
built by gcc 4.4. (Red Hat 4.4.-) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --with-pcre=../pcre-8.36 --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf ……

2.2 下载nginx-module-vts插件

# cd /usr/local/src/
# git clone git://github.com/vozlt/nginx-module-vts.git

2.3 重新编译nginx,可运行make,不要make install

# cd /usr/local/src/tengine-2.2.
# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf ... --add-module=/usr/local/src/nginx-module-vts
# make

2.4 替换原nginx命令,替换完成之后一定要重启nginx否则不会生效。

# mv /usr/sbin/nginx /usr/sbin/nginx.bak        # 备份原来的nginx命令
# cp objs/nginx /usr/sbin/nginx # 把tengine/objs目录中的nginx复制到/usr/sbin/目录中
# nginx -V # 查看是否是新编译的nginx命令,需带--add-module=/usr/local/src/nginx-module-vts此参数
# nginx -s stop # 需要重启nginx,否则不生效,使用kill -USR2 `cat /var/run/nginx.pid`未生效,就被它折腾了一天,
# nginx

2.5 配置ngin,使其生效

http {
vhost_traffic_status_zone; ...

server {
    listen 1080;
    server_name _;   # 内网可以通过http://IP:1080/status 进行访问,1080端口仅对内网开放


location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
    location / {
        return 403;
}
}

}

三、界面展示

更多用法参数https://github.com/vozlt/nginx-module-vts说明

整体界面概览:

备注:定时清空所有数据,重新统计

http://xxx.xxx.xxx.xxx/status/control?cmd=reset&group=*

{"processingReturn":true,"processingCommandString":"reset","processingGroupString":"*","processingZoneString":"","processingCounts":}

Tengine 添加第三方监控模块nginx-module-vts的更多相关文章

  1. AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)

    点击项目设置按钮 依次选择 App > Dependencies 1. 直接搜索法 依次选择 + > Library dependency 这里的搜索一定要是全名的,不然搜不到哦 下图所表 ...

  2. Emiller's Advanced Topics In Nginx Module Development

    Emiller的Nginx模块开发指南 By Evan Miller DRAFT: August 13, 2009 (changes) 翻译:Kongch @2010年1月5日 0:04am -- 2 ...

  3. 用lua nginx module搭建一个二维码

    用lua nginx module搭建一个二维码(qr code)生成器 作者 vinoca 發布於 2014年10月31日 如果有VPS,或者开源的路由器,安装一个nginx,添加lua-nginx ...

  4. tengine编译安装及nginx高并发内核参数优化

    Tengine Tengine介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性. Tengine的性能和稳定性已经在大型的 ...

  5. Ubuntu系统apt添加第三方PPA源

    一.前言 1.1目的 在使用Ubuntu时往往apt源会自带很多常用软件,但是大部分都是比较老的版本,本文主要是为了实现以下两个目的: 通过添加第三方的PPA源解决软件版本过低或者没有安装包的情况: ...

  6. 网站添加第三方登陆(PHP版)

    这两周正在写毕业设计,我做的是一个问答网站.先介绍一下这个网站:这是一个关于大学生在线问答的网站,类似知乎和百度知道,不过功能没有人家多,毕竟这个网站我一个人在做.网站部署在阿里云,网站包括API,W ...

  7. android添加第三方字体并设置的简单使用

    1.java文件 package lpc.com.project006; import android.app.Activity; import android.content.res.AssetMa ...

  8. iOS——Xcode中添加第三方库

    一.只有.h和.a文件的库 1.向项目中添加三方库文件 如果添加的第三方库只有.h和.a文件,直接把文件夹拖进项目下面,这时会弹出下面的提示框,一定要勾选下面选择的选项: 这里要注意,在Add to ...

  9. 为centos添加第三方源

    默认centos自带的源少了很多好软件,所以需要添加第三方源一.安装CentOS yum源优先级插件yum-prioritiesyum install yum-plugin-priorities.no ...

随机推荐

  1. Kafka 处理器客户端介绍

    [编者按]本文作者为 Bill Bejeck,主要介绍如何有效利用新的 Apache Kafka 客户端来满足数据处理需求.文章系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 如果你 ...

  2. 错误: 未能完成程序集的安装(hr = 0x8007000b),.net程序关于使用Oracle.DataAccess.dll不同版本x86和x64问题,即oracle odp.net 32位/64位版本的问题

    如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的3 ...

  3. Freemarket语法

    <#--freemarker HashMap取值--> <#assign maps={"1":"张三丰","2":&quo ...

  4. 使用动态跟踪技术SystemTap监控MySQL、Oracle性能

    [IT168 技术]本文根据吕海波2018年5月11日在[第九届中国数据库技术大会]上的演讲内容整理而成. 讲师介绍: 吕海波,美创科技研究员,ITPUB管理版版主.出版技术书籍<Oracle内 ...

  5. Shell 脚本合集

    0. 说明  Shell 脚本合集 1. xcall.sh xcall.sh 编写为了为了同时对多台服务器进行操作,编写完成之后,将其发送到 /usr/local/bin 下 #!/bin/bash ...

  6. fedora、centos、rhel安装Adobe Flash Player 28

    切换到root用户 添加Adobe Repository Adobe Repository 32-bit x86 rpm -ivh http://linuxdownload.adobe.com/ado ...

  7. 模拟prompt

    <!DOCTYPE html"> <meta http-equiv="Content-Type" content="text/html; ch ...

  8. 【Ansible 文档】【译文】Ad-Hoc 命令介绍

    Introduction To Ad-Hoc Commands Ad-Hoc命令介绍 下面的例子展示了如何使用 /usr/bin/ansible 来运行ad hoc任务. 什么是ad hoc命令? 一 ...

  9. linux下的“定时器”:crontab

    1.概述 crontab是用来设置在固定时间点或时间间隔执行某条指令,类似于时程表.使用-u user是指定user用户的时程表. 2.参数 -e[UserName] :调出编辑器,编辑定时任务,打开 ...

  10. BZOJ3105:[CQOI2013]新Nim游戏(线性基,贪心)

    Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴 ...