I discuss this some over here:
In summary, try throttling the request volume at the reverse proxy, which will keep the rest of the system from overloading.
If your system is falling over when it still have plenty of I/O, CPU and memory capacity, then you’ve got a configuration problem.
If it’s simply falling over from too much traffic, there ought to be a way to handle that at the web server layer, besides throttling connections, there are other things that might be done, like making sure you are serving static assets directly from the web server, which is more efficient at that then having Ghost serve the static assets.
Or enable a CDN service. Again, this frees from the web server from responding to most static asset requests so it can redirect more resources towards serving the dynamic content.