How to configure the NGINX status page for monitoring NGINX performance
The NGINX plugin uses the NGINX status page to pull the performance metrics of the NGINX server.
You may encounter the following errors while installing the NGINX plugin integration:
Error_code : HTTP Error 404: This error usually indicates that the server can't find the requested resource. It occurs when the NGINX plugin is unable to access the NGINX status page. Error_code : URL Error [Errno 111] Connection refused: This error can occur when the plugin tries to access the NGINX status page but is unable to connect to the port. It likely means that the NGINX status module is not enabled or configured properly, or there might be an issue with the NGINX configuration. HTTP Error 502: Bad Gateway and HTTP Error 503: This error is often an indication that NGINX is functioning as a reverse proxy or load balancer, and it forwards a request to the upstream server but receives an invalid response.
The errors mentioned above can be resolved by correctly enabling and configuring the NGINX status page for both the web server and load balancer. Here's a step-by-step approach to troubleshoot them.
- Ensure the stub status module (http_stub_status_module) is enabled
Ensure that the NGINX status module, http_stub_status_module, is compiled with your NGINX installation. This module provides the necessary functionality to display the status page. If you are using a prebuilt NGINX package, it should usually be included by default. To confirm, check if the following line is present in your NGINX configuration:
stub_status on;
Check the NGINX configuration
If the module is enabled, you should check your NGINX configuration file (located by default at /etc/nginx/nginx.conf or /etc/nginx/sites-available/default for most systems, or within a specific virtual host file).
Here's a sample configuration that should allow access to the status page:
server {
listen 127.0.0.1:8080; # Adjust the IP and port if necessary
server_name localhost; # You can use a different server_name if desired
location /nginx_status {
stub_status on;
# Optionally restrict access to IP addresses if needed
# allow 127.0.0.1;
# deny all;
}
}
In this configuration, the NGINX status page is available at http://localhost/nginx_status. If you have a different server_name or listen directive, or if the location path is different (like /status instead of /nginx_status), you should adjust your URL accordingly.
For example, adjust the listen directive if you want to bind the status page to a specific IP address or port. By using 127.0.0.1, it will only be accessible from the local machine.
Test the status page configuration
After adding the status page configuration, run the following command to test the NGINX configuration for syntax errors:
sudo nginx -t
Reload NGINX
If the test is successful, reload the NGINX service to apply the changes by running the following command:
sudo systemctl reload nginx
Access the NGINX status page
When the NGINX server is running, you should be able to access the status page by visiting the following URL in your web browser:
http://localhost:8080/nginx_status
Replace localhost and 8080 with the appropriate server name and port if you've configured them differently.
The response of the command should be similar to the below output:
Active connections: 2
server accepts handled requests
344014 344014 661581
Reading: 0 Writing: 1 Waiting: 1
Ensure the correct status page URL is used in the plugin .cfg file
The NGINX plugin uses the status URL to pull the performance metrics of the NGINX server. By default, the plugin will have http://localhost/status/ as the configured status page URL.
If this is different from the default URL, then update the URL accordingly in the nginx_status_url section of the .cfg file. Restart the agent after successfully updating.
Once the steps above are configured correctly, the plugin will automatically be added to your account within five minutes for you to view performance metrics in Site24x7.