Die Nachteile der Verwendung von Nginx als primären Webserver?

12

Ich habe Millionen von Websites gesehen, die Nginx als Proxy-Webserver für Apache verwenden. Aber ich habe sehr wenige Server gesehen, auf denen Nginx nur als Standard-Webserver ausgeführt wird. Was sind die Hauptnachteile einer solchen Konfiguration?

Ich kann einige sehen:

  • Die Verwendung von Konfigurationsdateien pro Verzeichnis wie .htaccess ist nicht möglich, sodass jede Konfigurationsänderung an der Konfigurationsdatei des Hauptservers vorgenommen werden sollte und ein erneutes Laden des Servers erforderlich ist. Aber pecl htscanner kann sie für PHP-Einstellungen ausgleichen
  • Nichtverfügbarkeit von mod_php für nginx, was zum Beispiel durch php-fpm kompensiert werden kann.

Was sind andere? Warum lassen die Leute Apache nicht einfach fallen und wechseln zu Nginx oder einer anderen leichten Lösung? Möglicherweise gibt es einige besondere Gründe?

BEARBEITEN: Bei dieser Frage geht es hauptsächlich um die Arbeit mit dem LAMP-Stapel.

Vladislav Rastrusny
quelle
1
Mindshare, Trägheit, Investition. Dasselbe wie immer.
Ignacio Vazquez-Abrams
Welche Investition war erforderlich, um nginx auf einem neuen Server einzurichten? Es ist freie Open Source Software.
Vladislav Rastrusny
3
Der Zeitaufwand für Recherche, Bereitstellung, Test usw.
ThatGraemeGuy
Wenn es um Quantität geht, ist der Hauptgrund meiner Meinung nach die große Anzahl von gemeinsam genutzten Hosts, die Apache verwenden. Das Einrichten von nginx als Shared Service (z. B. in cPanel, Plesk usw.) ist noch nicht so einfach wie mit Apache, insbesondere für Endbenutzer. Und ich kenne viele dedizierte Server, die eine einzelne Site betreiben und dennoch cPanel / Plesk / etc verwenden, nur wegen der Einfachheit, Vertrautheit und der geringen Einrichtungskosten.
Halil Özgür

Antworten:

9

Nach meiner Erfahrung mit #nginx ist dies fast immer darauf zurückzuführen, dass ich mit den Apache .htaccess-Dateien vertraut bin und nicht möchte, dass sie verloren gehen oder auf andere Weise davon abhängen. Zum Beispiel Leute mit Shared Server Hosting, die nur statische Dateien auslagern und Apache für ihre Benutzer behalten möchten.

Und ich kann mir ehrlich gesagt keine anderen Gründe für die Weiterleitung an Apache vorstellen, als .htaccess für Endbenutzer zu behalten.

Edit: Tatsächlich könnte mod_php plus phpsuexec für gemeinsam genutzte Hosts ein weiterer Grund sein, bei Apache zu bleiben.

Martin Fjordvald
quelle
Aus meiner Erfahrung ist es ziemlich schwierig, mit Tomcat über Nginx eine gute Leistung zu erzielen, da der Ajp-Worker von Apache2 unter hohem Druck deutlich schneller ist. Ich weiß, dass Nginx eine experimentelle Ajp13-Implementierung hat, aber es ist nicht stabil und schlecht dokumentiert.
Pause
1
Das ist sehr gut möglich. Nginx eignet sich am besten als FastCGI- oder HTTP 1.0-Reverse-Proxy. Ich weiß, dass es Module von Drittanbietern für Gespräche mit scgi, wsgi usw. gibt, aber ich kann nicht sagen, wie stabil sie sind oder wie schnell sie sind.
Martin Fjordvald
Übrigens funktioniert mod_php nicht mit suexec. Suexec ist für CGI-Anwendungen.
Vladislav Rastrusny
Na los, keine wirklichen Gründe. Ich war zu lange ein Nginx-Benutzer, um mich noch an Apache zu erinnern. : D
Martin Fjordvald
6

Wenn Sie eine Menge Leute haben, die Apache zum Laufen bringen, warum sollten Sie sich dann die Mühe machen, eine völlig neue App und Konfiguration neu zu lernen, mod_rewrite-Regeln zu migrieren, mod_perl / php / etc-Konfigurationen zu wiederholen, erneut zu testen und erneut bereitzustellen?

Beide Software-Stacks sind zwar kostenlos, "neu trainieren, neu entwickeln, neu testen" jedoch nicht. Es ist an der Zeit, Funktionen hinzuzufügen, die Ihre Benutzer für 1 interessieren , anstatt aus Gründen des Bastelns zu basteln.

1 Ich spreche offenbar nicht von persönlichen Projekten.

Rodger
quelle
2

Ich mag Nginx, aber zwei Dinge hindern mich daran, es für meine Websites zu verwenden.

  • Es ist schwer, PHP-FPM einzurichten . Ich habe es mit der neuesten PHP-Version noch nicht geschafft.

  • Nginx unterstützt keine HTML5-Websockets, an denen ich interessiert bin.

Jonas
quelle
1
Können Sie die Schwierigkeiten nennen, die Sie mit Nginx und PHP-FPM hatten? Über HTML5 WebSockets sieht es so aus, als hätte Apache sie noch nicht: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny
Ich würde gerne auch die PHP-FPM-Probleme kennen. Wenn Sie PHP aus dem Quellcode ohne es kompilieren können, ist es sehr einfach, es auch damit zu tun.
Martin Fjordvald
1
5.3 Branch hat es bereits in sich, also einfach ./configure --enable-fpm und fertig.
Vladislav Rastrusny