Volevo inserirlo in un commento poiché sono d'accordo con il punto più importante della risposta di webdestroyas, ma è diventato un po 'troppo lungo.
Sei in un ambiente VPS, questo significa che molto probabilmente avrai poca RAM. Per questo motivo da solo vorrai Nginx poiché la sua impronta di memoria è più piccola di Apache.
Inoltre, non concordo con alcuni degli argomenti citati.
Facilità di configurazione:
Nginx non è più difficile di Apache. È diverso. Se sei abituato ad Apache, il cambiamento sarà sempre più difficile, questo non significa che lo stesso stile di configurazione sia più difficile. Ho migrato completamente da Apache a Nginx più di un anno fa e oggi avrei difficoltà a configurare un server Apache mentre trovo Nginx estremamente facile da configurare.
Per Ruby:
Nginx ha Passenger, tuttavia, di solito lo vedo descritto come il metodo inferiore per connettersi a Ruby. Non sono un programmatore di Ruby, quindi non posso verificarlo, ma vedo spesso Unicorn e Thin menzionati come alternative migliori.
In conclusione:
Nginx è stato creato per essere un proxy inverso. Inizialmente tutto ciò che faceva era servire file statici e invertire il proxy su un server back-end tramite HTTP / 1.0. Da allora sono stati aggiunti fastcgi, bilanciamento del carico e varie altre funzionalità, ma il suo scopo di progettazione iniziale era di servire file statici e proxy inverso. E lo fa davvero bene.
Apache, al contrario, è un web server generico. Non ho dubbi sul fatto che possa invertire perfettamente il proxy, ma non è stato progettato per avere un ingombro di memoria minimo e di conseguenza richiede più risorse di Nginx, il che significa che il mio argomento iniziale sull'ambiente VPS entra in gioco.