For active connections (for example, loading and running a specific PHP script), yes, there will be as many PHP processes as there are active connections. But KeepAlive are passive connections, and Nginx does very well with KeepAlive passive connections with very low resource usage - even for thousands of them.
The problem with Apache is that it, in the normal configuration with mod_php and mpm_prefork, needs a process for every connection, even if it's just a passive KeepAlive. This means that most Apache servers should actually have a PHP process in memory, even if the connection is passive, but this is not the case if you run PHP as FastCGI. Apache can also handle many passive connections if you run PHP as FastCGI and choose mpm_worker, which will create an easier stream for each connection, but it is still not as good as Nginx.
source share