Je voulais mettre cela dans un commentaire puisque je suis d’accord avec le point le plus important de la réponse de webdestroyas, mais c’est un peu trop long.
Vous êtes dans un environnement VPS, cela signifie que votre mémoire RAM sera probablement très basse. Pour cette seule raison, vous souhaiterez utiliser Nginx car son empreinte mémoire est inférieure à Apaches.
De plus, je ne suis pas d'accord avec certains des arguments mentionnés.
Facilité de configuration:
Nginx n’est pas plus difficile qu’Apache. C'est différent. Si vous êtes habitué à Apache, le changement sera toujours plus difficile, cela ne signifie pas que le style de configuration lui-même est plus difficile. J'ai migré complètement d'Apache vers Nginx il y a plus d'un an et aujourd'hui, j'ai du mal à configurer un serveur Apache alors que je trouve Nginx extrêmement facile à configurer.
Pour Ruby:
Nginx a Passenger, cependant, je le vois généralement décrit comme la méthode inférieure pour se connecter à Ruby. Je ne suis pas un programmeur Ruby, donc je ne peux pas le vérifier, mais je vois souvent Unicorn et Thin mentionnés comme de meilleures alternatives.
En conclusion:
Nginx a été conçu pour être un proxy inverse. Initialement, il ne servait que les fichiers statiques et le proxy inverse sur un serveur principal via HTTP / 1.0. Depuis lors, fastcgi, l'équilibrage de charge et diverses autres fonctionnalités ont été ajoutés, mais son objectif initial était de servir des fichiers statiques et un proxy inverse. Et ça le fait vraiment bien.
Apache, au contraire, est un serveur Web à usage général. Je ne doute pas qu'il puisse parfaitement inverser le proxy, mais celui-ci n'a pas été conçu pour minimiser l'encombrement de la mémoire. Il nécessite donc plus de ressources que Nginx, ce qui signifie que l'argument initial de mon environnement VPS entre en jeu.