Da ich die letzten anderthalb Jahre in einer MS-Stack-Architektur-/Entwicklungsposition feststeckte, konnte ich mich nicht mehr auf dem Laufenden halten, was die jüngste Entwicklung von Open-Source-Stack-basierten Webservern angeht, als ich es gern gewollt hätte. Allerdings baue ich jetzt eine Open-Source-Stack-basierte Anwendungs-/Systemarchitektur und habe leider nicht die Zeit, jeden der oben genannten Webserver selbst gründlich zu testen, um mir eine Meinung zu bilden. Also dachte ich mir, ich könnte mir Input von der bekanntesten Community für Systemarchitektur holen.
Dies ist eine Site, die als Informationsquelle zu einem bestimmten Bereich und einer bestimmten Zielgruppe dient und über Funktionen verfügt, die den Benutzern nicht nur dabei helfen, die Informationen zu finden, sondern ihnen auch die Möglichkeit geben, aus unterschiedlichen Gründen auf unterschiedliche Weise miteinander zu interagieren.
Ich habe mich für den Open-Source-Stack entschieden, weil er eine Fülle an Ressourcen bietet und viel bessere Angebote bietet als der MS-Stack (z. B. WordPress vs. BlogEngine.NET). Ich denke, Java liegt in dieser Hinsicht eher in der Mitte dieser Stacks, obwohl ich die Möglichkeit nicht ausschließe, es in bestimmten Bereichen zu verwenden, die nichts mit der eigentlichen Webanwendung selbst zu tun haben, wie z. B. Hintergrundprozesse.
Ich bin bereits zu dem Schluss gekommen, dass ich PHP (mit CodeIgniter-Framework und APC), MySQL (InnoDB) und Memcached unter CentOS verwenden werde. Statische Inhalte stelle ich definitiv auf Nginx bereit. Die drei genannten Server sind sich jedoch nicht einig, welcher Server in Bezug auf die Leistung am besten für dynamische Inhalte geeignet ist. Es scheint, dass LightTPD immer noch das Leckproblem hat, was es ausschließt, wenn es so ist. Nginx scheint in dieser Hinsicht noch nicht ausgereift genug zu sein, und Apache versucht natürlich, alles für jeden zu sein.
Ich werde die ausgewählte Version trotzdem mit möglichst vielen Leistungsoptimierungen wie statischen Verknüpfungen und dergleichen kompilieren. Ich glaube, ich kann Apache so einrichten, dass es mit den anderen beiden mithält, indem es dynamische Inhalte über diesen Prozess bereitstellt und nichts Statisches bereitstellt. Bei meinen Recherchen scheint es jedoch, dass die anderen Versionen immer noch eine Überlegung wert sind.
Alles in allem würde ich also gerne hören, was jeder hier zu diesem Thema zu sagen hat. Danke!
Antwort1
Nehmen Sie das mit ein paar Körnern Salz, aber meineEindruckist, dass Apache für PHP etwas einfacher zu konfigurieren ist als die beiden anderen Server. Und wenn Sie Apache richtig einrichten, also keine unnötigen Module laden, die Anzahl der Prozesse/Threads unter Kontrolle halten usw., dann können Sie es meiner Meinung nach in Bezug auf die Effizienz ziemlich nahe an nginx oder lighttpd heranbringen. Ich glaube, viele Leute haben eine etwas übertriebene Meinung über die Verbesserung, die man mit lighttpd oder nginx gegenüber Apache für dynamisch generierte Seiten erzielen kann.
Antwort2
Ich persönlich finde, dass Nginx einfacher zu konfigurieren ist als Apache. Wenn ich mir Apache-Konfigurationen anschaue, bekomme ich Kopfschmerzen.
Was die Konfigurationen angeht, ist mein derzeit bevorzugtes Setup nginx + php-fpm + APC. Ich habe mehrere Clients, die mit dieser Konfiguration sehr gut laufen und die normalerweise von Apache-basierten Setups migriert sind. Offensichtlich kann Ihre Situation unterschiedlich sein. =)
Antwort3
Da Sie CodeIgniter erwähnen, möchten Sie vielleicht einen Blick auf Kohana werfen, das ursprünglich ein Fork von CodeIgniter war, jedoch die gesamte OO auf dem verbesserten OO-Konzept von PHP 5 implementiert hat. Ich sage nicht, dass eines von beiden besser ist, es ist letztendlich eine Frage der persönlichen Vorliebe.