Ich denke über die Architektur eines neuen Webservers nach. Wäre es eine gute Idee, Varnish als Cache vor Nginx als Reverse-Proxy zu haben und statische Dateien vor Apache für alle schweren Aufgaben bereitzustellen?
Ich werde PHP und Ruby auf Schienenanwendungen ausführen.
Wird es zu viel Overhead geben, PHP-Anfragen über zwei andere Prozesse an Apache zu übergeben?
Danke vielmals!
quelle
Varnish unterstützt (noch) keine gzip-Komprimierung, daher ist es möglicherweise eine Idee, es mit nginx vor sich zu tauschen, um zu komprimieren, was der Lack zurücksendet. Da Lack und Nginx nicht um dieselben Ressourcen kämpfen (Nginx verwendet CPU für die GZIP-Komprimierung, während Lack Speicher verwendet), sollten sie reibungslos auf demselben Computer ausgeführt werden.Varnish unterstützt jetzt die gzip-Komprimierung . Wenn Sie also keine SSL-Terminierung benötigen (wie in den Kommentaren vorgeschlagen), würde ich empfehlen, den Lack direkt mit dem Internet in Kontakt zu bringen.
Für http:
Für https:
Wenn Sie dort auch Apache haben möchten (für die allgegenwärtige Unterstützung von mod_foobar), würde ich es zwischen Lack und der Anwendung setzen
Update: Aktualisiert, um die Unterstützung von gzip in Lack 3.0 aufzunehmen. SSl / esi hinzugefügt, wie in den Kommentaren vorgeschlagen
quelle
Der Overhead sollte nicht signifikant sein. Ich gehe davon aus, dass ein Teil des Grundes, warum Sie diese beiden Ebenen haben möchten, in der Skalierbarkeit liegt. In diesem Fall würden Sie im Vergleich zu Apache höchstwahrscheinlich feststellen, dass Lack und Nginx nicht sehr hart arbeiten.
Wenn Sie alle drei Ebenen auf einem Computer haben, sollte die Leistung weniger beeinträchtigt werden, bevor Sie die Kapazität des Servers selbst erreichen.
Als Alternative, warum nicht Lack + Nginx mit Passagier? Ich habe dieses Setup in der Vergangenheit verwendet und Nginx mit Passagier ist relativ leicht und lief ziemlich gut. Es könnte sich lohnen, darüber nachzudenken, wenn Sie nicht mit Apache verheiratet sind, der Ihren Schienenstapel betreibt.
quelle
Ich bin der Systemadministrator für eine Startup-E-Commerce-Plattform. Wir verwenden Lack + Nginx vor unserem PHP / Apache-Stack und es hat Wunder gewirkt.
Wir haben eine Anwendung mit hohem Speicherbedarf und die App verbrauchte ungefähr 15 bis 20 GB RAM pro Webknoten. Sobald wir den Lack vorgelegt haben, sind es jetzt ungefähr 8 GB RAM pro Knoten. Sie haben nie versetzt.
Ich kann es nur empfehlen.
quelle
Ich verwende Drupal mit dem Boost-Modul auf einem Apache + PHP + MySQL-Server, aber vor ihnen verwende ich Nginx mit aktivierter gzip-static-Funktion und verwende die Boost-Ergebnisse, um den Benutzern zu dienen.
Und obendrein verwende ich Lack, alle auf demselben PC, ich habe gute Ergebnisse.
Ich benutze auch Nginx, um die Header zu optimieren, die Drupal für den Cache nicht sehr gut macht.
quelle
Es ist keine gute Idee, wenn Sie nicht so etwas wie ESI benötigen. Nginx verfügt über ein eigenes Caching-System, das eine bessere Leistung erbringt .
quelle
Apache kann zum Beenden (Entschlüsseln) von SSL verwendet werden. Überprüfen Sie http://noosfero.org/Development/Varnish#SSL
quelle