Les inconvénients de l'utilisation de nginx comme serveur Web principal?

12

J'ai vu des millions de sites Web utiliser nginx comme serveur Web mandataire en collaboration avec Apache. Mais j'ai vu très peu de serveurs exécutant nginx uniquement comme serveur Web par défaut. Quels sont les principaux inconvénients d'une telle configuration?

J'en vois:

  • Impossibilité d'utiliser des fichiers de configuration par répertoire comme .htaccess, donc chaque modification de configuration doit être effectuée dans le fichier de configuration du serveur principal et nécessite un rechargement du serveur. Mais pecl htscanner peut les compenser pour les paramètres php
  • Indisponibilité de mod_php pour nginx, qui peut être compensée par php-fpm par exemple.

Quels sont les autres? Pourquoi les gens ne déposent-ils pas simplement Apache et passent à nginx ou à toute autre solution légère? Peut-être, il y a des raisons spéciales?

EDIT: cette question concerne principalement l'utilisation de la pile LAMP.

Vladislav Rastrusny
la source
1
Mindshare, inertie, investissement. Comme toujours.
Ignacio Vazquez-Abrams
Quel investissement faut-il pour installer nginx sur un nouveau serveur? C'est un logiciel open source gratuit.
Vladislav Rastrusny
3
L'investissement de temps requis pour rechercher, déployer, tester, etc.
ThatGraemeGuy
Si nous parlons de quantité, à mon humble avis, la principale raison est le grand nombre d'hôtes partagés utilisant Apache. Configurer nginx en tant que service partagé (par exemple, comme dans cPanel, Plesk, etc.) n'est pas encore aussi simple que de faire de même avec Apache, en particulier pour les utilisateurs finaux. Et je connais de nombreux serveurs dédiés qui exécutent un seul site, et pourtant utilisent cPanel / Plesk / etc simplement en raison de la facilité, de la familiarité et du faible coût d'installation.
Halil Özgür

Réponses:

9

D'après mon expérience #nginx, c'est presque toujours en raison de la familiarité avec les fichiers .htaccess Apache et de ne pas vouloir perdre cela ou autrement en fonction. Par exemple, les personnes exécutant un hébergement de serveur partagé qui souhaitent décharger des fichiers statiques uniquement et garder Apache pour que leurs utilisateurs puissent jouer avec.

Et honnêtement, je ne peux vraiment pas penser à d'autres raisons de mandater Apache que de garder .htaccess pour les utilisateurs finaux.

Edit: En fait, mod_php plus phpsuexec pour les hôtes partagés pourraient être une autre raison de rester avec Apache.

Martin Fjordvald
la source
D'après mon expérience, il est assez difficile d'obtenir de bonnes performances de tomcat via nginx, car ajp-worker d'Apache2 est notamment plus rapide sous haute pression. Je sais que nginx a une implémentation expérimentale ajp13, mais elle n'est pas stable et mal documentée.
pauska
1
C'est très possible. Nginx fonctionne mieux en tant que proxy inverse fastcgi ou HTTP 1.0. Je sais qu'il existe des modules tiers pour parler avec scgi, wsgi, etc. mais je ne peux pas dire à quel point ils sont stables, ni même à quelle vitesse ils sont.
Martin Fjordvald
BTW, mod_php ne fonctionne pas avec suexec. Suexec est destiné aux applications cgi.
Vladislav Rastrusny
Et bien voilà, pas de vraies raisons. Je suis un utilisateur de nginx depuis trop longtemps pour ne plus me souvenir d'Apache. : D
Martin Fjordvald
6

Si vous avez un tas de gens qui peuvent bien faire fonctionner Apache, pourquoi s'embêter à réapprendre une toute nouvelle application et configuration, migrer les règles mod_rewrite, refaire les configurations mod_perl / php / etc, re-tester, redéployer?

Les deux piles logicielles peuvent être gratuites, mais pas "re-former, re-développer, re-tester", et il est temps que vous puissiez ajouter des fonctionnalités que vos utilisateurs se soucient de 1 , plutôt que de bricoler pour bricoler.

1 Je ne parle évidemment pas de projets personnels, là.

Rodger
la source
2

J'aime Nginx, mais deux choses m'empêchent de l'utiliser pour mes sites Web.

  • Il est difficile de configurer PHP-FPM . Je n'ai pas encore réussi à le faire avec la dernière version de PHP.

  • Nginx ne prend pas en charge les Websockets HTML5, ce qui m'intéresse.

Jonas
la source
1
Pouvez-vous nommer les difficultés que vous avez rencontrées avec nginx et php-fpm? À propos de HTML5 WebSockets, il semble qu'Apache ne les ait pas encore: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny
J'aimerais également connaître les problèmes de php-fpm. Si vous pouvez compiler PHP à partir de la source sans cela, il est très simple de le faire aussi.
Martin Fjordvald
1
La branche 5.3 l'a déjà à l'intérieur, donc juste ./configure --enable-fpm et vous avez terminé.
Vladislav Rastrusny