Hướng dẫn thêm Nginx Virtual Host Traffic Status Module vào Nginx
Share

Hướng dẫn thêm Nginx Virtual Host Traffic Status Module vào Nginx

Module Nginx Virtual Host Traffic Status (hay còn được gọi là ngx_http_vhost_traffic_status) là một module mở rộng của Nginx, được sử dụng để theo dõi và báo cáo thông tin về lưu lượng truy cập của các virtual host (địa chỉ IP, yêu cầu HTTP, thời gian phản hồi, và nhiều hơn nữa). Nó cung cấp các giao diện web đồ họa để hiển thị thông tin trực quan về lưu lượng truy cập của các virtual host.

Module Nginx Virtual Host Traffic Status cho phép bạn xem và phân tích các chỉ số lưu lượng truy cập như:

  1. Lưu lượng truy cập tổng thể của mỗi virtual host.
  2. Thông tin chi tiết về từng yêu cầu HTTP được gửi đến từng virtual host.
  3. Thời gian phản hồi trung bình, thời gian xử lý và thời gian chờ đợi của các yêu cầu.
  4. Thông tin về các địa chỉ IP đã truy cập vào virtual host.
  5. Các chỉ số thống kê hàng ngày, hàng tuần, hàng tháng và tổng cộng

Để sử dụng module Nginx Virtual Host Traffic Status, bạn cần build nginx với modules này hoặc sử dung dynamic modules của nginx để thêm nó vào các virtual host. Trong bài viết này mình sẽ hướng dẫn các bạn thêm nó vào nginx có sẵn.

Bước 1: Tải modules

Tải modules từ trang chính thức github https://github.com/vozlt/nginx-module-vts hoặc clone về như sau

cd /tmp

git clone https://github.com/vozlt/nginx-module-vts

Bước 2: Build modules từ source nginx.

Bước này rất quan trọng, bạn cần kiểm tra phiên bản nginx đang sử dụng trước để tải đúng source nginx và build, nếu tải sai phiên bản có thể sau khi load modules sẽ bị lỗi. Sau khi kiểm tra phiên bản nginx đang dùng, các bạn truy cập https://nginx.org/en/download.html để lấy liên kết tải về tương ứng.

nginx -V

nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled

-> phiên bản đang dùng là 1.18.0

Tiếp theo mình tải source nginx tương ứng về và build với modules ở bước 1.

wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure --with-compat --add-dynamic-module=/tmp/nginx-module-vts

# build module
make modules

# chép module đã build vào thư mục modules nginx, thông thường là /usr/share/nginx/modules
cp objs/ngx_http_vhost_traffic_status_module.so /usr/share/nginx/modules
chmod 644 /usr/share/nginx/modules/ngx_http_vhost_traffic_status_module.so

Bước 3: Sử dụng modules

Để có thể sử dụng modules bạn cần thêm nó vào nginx.conf (đây là bước quan trọng)

Thêm dòng này vào phần đầu tệp /etc/nginx/nginx.conf như bên dưới

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

# load modules
load_module modules/ngx_http_vhost_traffic_status_module.so;

events {
        worker_connections 768;
        # multi_accept on;
}
...

Thêm trang status vào các vhost bạn cần xem, bên dưới là mình thêm vào trang default tại /etc/nginx/sites-available/default

vhost_traffic_status_zone;
...
server {
    listen 80;
    ...
    location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
}

Sau khi thêm các cài đặt, bạn cần kiểm tra lại config trước khi reload nginx.

nginx -t

# hiển thị như bên dưới là ok
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# reload lại nginx
nginx -s reload

Bonus: Bảo mật trang xem status sử dụng htpasswd.

Điều này giúp bạn giới hạn quyền truy cập trang /status mà không phải ai cũng có quyền xem.

htpasswd -c /etc/nginx/.htpasswd matkhaucuaban

Chỉnh sửa lại config vhost như sau

vhost_traffic_status_zone;
...
server {
    listen 80;
    ...
    location /status {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;

        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
}

Cuối cùng, bạn truy cập https://yourdomain/status để xem thành quả nhé.

Hướng dẫn thêm Nginx Virtual Host Traffic Status Module vào Nginx
0 0 bình chọn
Đánh giá bài viết
Đăng ký
Nhận thông báo cho
0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận