Ok, so I've got a crazy idea, but it might just work.
Basically, we have a bunch of PHP pools managed with PHP-FPM. Each site has its own single PHP-FPM worker for security reasons.
The majority of the sites don't get much traffic, so the PHP processes don't need to be running eating up RAM and resources. My thought was after N number of minutes of no requests to shut down that PHP worker for that site. Then when a request comes in, hold the request in sort-of a pause mode, start the worker for that site, and then forward off the request. Sure there would be a slight delay on that first request to spin up the worker, but should work beautifully.
Does nginx have any plugins to emulate this behavior? I.E. sort of hooks? All I would need is a hook from nginx when a site is idle for X number of second/minutes. For this first hook, we could write a simple bash script which kills that PHP-FPM worker. Then another hook, when a request comes in on a given site. Again, another bash script which first checks if the PHP-FPM worker is up, if not, holds the requests, starts the worker, and then forwards the request.
I was thinking at first, I can use node.js and write a middleware proxy that sits between nginx and the PHP-FPM workers, but then quickly realized the node.js app would have to speak cgi, and I didn't want to have to deal with that rubbish. :)