📖 Scenario: You are a system administrator responsible for monitoring the health and performance of your web servers. You use Nginx Plus, which provides a built-in API for monitoring server status and metrics.To keep track of your server's health, you want to enable the Nginx Plus status API and configure it to be accessible on a specific URL path.
🎯 Goal: In this project, you will configure Nginx Plus to enable its built-in status monitoring API. You will set up the configuration to expose the status on the /status URL path and then verify that the status page is accessible.
📋 What You'll Learn
Create an Nginx configuration snippet to enable the status API
Add a location block for /status to serve the status
Configure the status to show JSON output
Verify the status page is accessible by printing the curl command output
💡 Why This Matters
🌍 Real World
Nginx Plus provides a built-in API to monitor server health and performance. Enabling this API helps system administrators keep track of server status in real time.
💼 Career
Knowing how to configure and monitor Nginx Plus is valuable for DevOps engineers and system administrators managing web infrastructure.
Progress0 / 4 steps
1
Create the Nginx status configuration block
Create an Nginx configuration snippet that defines a status block with zone=status_zone and interval=5s inside the http context.
Nginx
Hint
The status directive enables the Nginx Plus status zone. It must be inside the http block.
2
Add a location block for /status
Inside the http block, add a server block with a location /status that uses status; to enable the status API endpoint.
Nginx
Hint
The status; directive inside the location /status block enables the status API endpoint.
3
Configure status to show JSON output
Inside the location /status block, add the directive status_format json; to configure the status output format as JSON.
Nginx
Hint
The status_format json; directive tells Nginx Plus to output the status in JSON format.
4
Verify the status page is accessible
Run the command curl -s http://localhost:8080/status and print its output to verify the JSON status is returned.
Nginx
Hint
Use Python's subprocess.check_output to run the curl command and print the JSON output.
Practice
(1/5)
1. What is the main purpose of the Nginx Plus monitoring API endpoint?
easy
A. To provide live data about server traffic and health
B. To serve static website files
C. To configure SSL certificates automatically
D. To block unwanted IP addresses
Solution
Step 1: Understand Nginx Plus monitoring role
Nginx Plus monitoring API endpoint is designed to show live server data such as traffic, errors, and health.
Step 2: Identify the correct purpose
Serving static files, configuring SSL, or blocking IPs are unrelated to monitoring API.
Final Answer:
To provide live data about server traffic and health -> Option A
Quick Check:
Monitoring API = live server data [OK]
Hint: Monitoring API shows live server info, not config or files [OK]
Common Mistakes:
Confusing monitoring API with static file serving
Thinking it manages SSL certificates
Assuming it blocks IP addresses
2. Which configuration snippet correctly enables Nginx Plus monitoring API at the path /api?
easy
A. location /api { api; }
B. location /api { proxy_pass http://backend; }
C. location /api { return 404; }
D. location /api { root /var/www/html; }
Solution
Step 1: Recall correct syntax for enabling Nginx Plus API
The directive api; inside a location block enables the monitoring API endpoint.
Step 2: Compare options
Only location /api { api; } uses api; directive. Others proxy, return 404, or serve files, which do not enable monitoring API.
Final Answer:
location /api { api; } -> Option A
Quick Check:
Enable API = location with api; directive [OK]
Hint: Use 'location /api { api; }' to enable monitoring [OK]
Common Mistakes:
Using proxy_pass instead of api directive
Returning 404 disables the endpoint
Serving files does not enable API
3. Given this Nginx Plus config snippet, what will be the output when accessing /api?
location /api {
api;
}
medium
A. A 404 Not Found error
B. A JSON response with live server metrics
C. The contents of /api directory on disk
D. A redirect to another URL
Solution
Step 1: Understand the api; directive effect
The api; directive enables the Nginx Plus monitoring API, which returns live server data in JSON format.
Step 2: Analyze the response type
Accessing /api returns JSON with metrics, not a 404, file contents, or redirect.
Final Answer:
A JSON response with live server metrics -> Option B
Quick Check:
api; returns JSON metrics [OK]
Hint: api; returns JSON live metrics at /api [OK]
Common Mistakes:
Expecting file contents instead of JSON
Thinking it returns 404 error
Assuming it redirects
4. You added this config to enable Nginx Plus monitoring but get a 404 error when accessing /api:
location /api {
api
}
What is the likely cause?
medium
A. The api directive requires a parameter
B. Wrong location path, should be /monitor
C. Nginx Plus monitoring is not supported on this server
D. Missing semicolon after api directive
Solution
Step 1: Check syntax of the api directive
The api directive must end with a semicolon (api;). Missing it causes config errors and 404 responses.
Step 2: Evaluate other options
The location path /api is correct, monitoring is supported, and api directive takes no parameters.
Final Answer:
Missing semicolon after api directive -> Option D
Quick Check:
Directive missing semicolon = 404 error [OK]
Hint: Always end directives with semicolon ; [OK]
Common Mistakes:
Omitting semicolon after api directive
Changing location path unnecessarily
Assuming api directive needs parameters
5. You want to monitor multiple Nginx Plus servers centrally. Which approach using the monitoring API is best?
hard
A. Use location /api { proxy_pass http://backend; } to forward monitoring requests
B. Set up a single Nginx Plus server with location /api { api; } and proxy all traffic through it
C. Configure each server with location /api { api; } and use a script to fetch JSON from each server's /api endpoint
D. Disable the monitoring API and use log files only
Solution
Step 1: Understand monitoring API usage per server
Each Nginx Plus server exposes its own live data at /api when configured with api;.
Step 2: Centralize monitoring by fetching data
A script or tool can query each server's /api endpoint to collect and aggregate metrics centrally.
Step 3: Evaluate other options
Proxying all traffic through one server or disabling API loses direct live data. Proxy_pass does not enable monitoring API.
Final Answer:
Configure each server with location /api { api; } and use a script to fetch JSON from each server's /api endpoint -> Option C
Quick Check:
Each server exposes API; central script collects data [OK]
Hint: Enable api; on each server, fetch data centrally via script [OK]
Common Mistakes:
Trying to proxy monitoring API through one server
Disabling API and relying only on logs
Misusing proxy_pass for monitoring API
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.