Like the Apache mod_status module, Nginx also has a module that can provide you with realtime data regarding its stats. While its not as detailed as Apache mod_status, the data is still useful, especially if you are using Nginx as a load balancer.
First, confirm that Nginx was compiled with the HttpStudStatusModule. If you installed this via yum or apt-get, it should have it:
[root@web01 ~]# nginx -V 2>&1 | grep -o with-http_stub_status_module with-http_stub_status_module
To enable the module, set the following configuration:
[root@web01 ~]# vim /etc/nginx/conf.d/nginx_status.conf
server {
listen 80 default_server;
access_log off;
server_name _;
server_name_in_redirect off;
root /var/www/html;
location /nginx_status {
# Enable Nginx stats
stub_status on;
# Disable logging for stats
access_log off;
# Security: Only allow access from authorized IP's
allow 127.0.0.1;
allow 192.168.1.100;
# Deny everyone else
deny all;
}
}
Now navigate your browser to:
http://serverip/nginx_status
The results will look something like this:
Active connections: 1 server accepts handled requests 1 1 1 Reading: 0 Writing: 1 Waiting: 0
Here is what these numbers mean, taken directly from Nginx’s documentation:
# Active connections The current number of active client connections including Waiting connections. # accepts The total number of accepted client connections. # handled The total number of handled connections. Generally, the parameter value is the same as accepts unless some resource limits have been reached (for example, the worker_connections limit). # requests The total number of client requests. # Reading The current number of connections where nginx is reading the request header. # Writing The current number of connections where nginx is writing the response back to the client. # Waiting The current number of idle client connections waiting for a request.