Nginx exposes its own status endpoint, similar in spirit to Apache's mod_status, that gives iPM detail beyond a simple port check.
Enabling the status endpoint
- Add a status location block to the Nginx configuration (commonly using the stub_status module, or a richer status module if your build includes one).
- Restrict access to that location to localhost or the iPM server's IP address specifically, since it's not meant to be public.
- Reload Nginx to apply the configuration change.
- Point the Nginx service check in iPM at that status endpoint.
What you can monitor
- Process / port — is Nginx running and listening on its configured port(s)
- Active connections — how many client connections are currently open
- Requests per second — request throughput over time
- Accepted vs. handled vs. dropped connections — a growing gap between accepted and handled connections points to Nginx hitting a configured limit (such as worker_connections) before it can serve everything coming in
- HTTP response check — a direct request to a real page or endpoint behind Nginx, confirming the application it's proxying to is actually healthy, not just that Nginx itself is listening
Nginx as a reverse proxy
Nginx is very often deployed in front of another application (a Node.js service, PHP-FPM, an internal API), acting purely as a reverse proxy. In that setup, monitor Nginx itself for connection and throughput health, and separately monitor whatever it's proxying to — an Nginx instance can look completely healthy while the backend it's forwarding requests to has failed, and only an HTTP check that reaches all the way through will catch that.