Nginx virtual host traffic status module (Nginx Module VTS) has lot of usefull monitoring for your open source Nginx server.
Nginx Module VTS also can monitoring upstream status and request.
We can monitor traffic by country or city using Max Mind Geo IP database.
This module provides access to virtual host status information.
It contains the current status such as servers, upstreams, caches.
This is similar to the live activity monitoring of nginx plus.
The built-in html is also taken from the demo page of old version.
If we use Nginx as load Balancing, Open Source Nginx does not have upstream monitoring. Only Nginx Plus have a status monitoring.
Also Read: Remove Nginx server header with Nginx Headers More Filter Module
So we can use Nginx virtual host traffic status module to monitor Nginx.
For monitoring result, we can use html format, json or jsonp.
You can read more about all function on Github project page https://github.com/vozlt/nginx-module-vts
How to install and configure Nginx virtual host traffic status module
# yum groupinstall 'Development Tools' -y
# yum install gcc-c++ flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre-devel
# yum install lmdb lmdb-devel libxml2 libxml2-devel ssdeep ssdeep-devel lua lua-devel
Clone repository from https://github.com/vozlt/nginx-module-vts
# cd /usr/src
# git clone https://github.com/vozlt/nginx-module-vts.git
In this post, we use lates stable Nginx version 1.18.0. We can check Nginx version with command:
# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
Now we need to download Nginx source, depend on our Nginx version.
In this example is Nginx 1.18.0, compile module and compiled Nginx Brotli located in objs.
Pingback: How to install and configure Nginx with HTTP3 on CentOS 9 Stream / RHEL 9 - SERVERDIARY