On an older virtual cloud server I had about 10 small web apps and used both Nginx for my Rails web apps and Apache for my PHP apps on a single server (also note with Phusion Passenger for the rails apps). Nginx was set as the primary server. In the virtual hosts section of the nginx configuration file, if the requested URL was for a PHP app, then nginx would serve as a reverse proxy and hand the request off to the Apache server. This works well because from the outside it appears all apps are running through the same port 80. I don't have a link to the original setup article I followed, but here are a few similar.
http://kbeezie.com/apache-with-nginx/
https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache
FYI, on a new server that I am currently setting up, I plan to run both my rails and PHP apps through the nginx server.