Warum nginx mit Katalysator/Schwarz/Starman?
Ich versuche zum bereitstellen von meine kleine Katalysator-web-app mit Schwarz/Starman. Alle Unterlagen, die zu suggerieren scheint, möchte ich diese in Kombination mit nginx. Was sind die Vorteile dieser? Warum nicht Starman gerade auf port 80?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Muss es nicht sein, nginx, sondern Sie wollen eine Art von frontend-server-proxying, um Ihren Anwendungsserver für ein paar Gründe:
So, dass man den Catalyst-server auf einem hohen port, als normaler Benutzer, beim laufen die frontend-server auf port 80.
Dienen statische Dateien (ordinary Ressourcen wie Bilder, JS und CSS, sowie jede Art von downloads, die Sie möchten möglicherweise verwenden Sie X-Sendfile oder X-Accel-Redirect mit) ohne Bindung ein perl-Prozess für die Dauer des downloads.
Es macht die Dinge einfacher, wenn Sie wollen sich zu bewegen auf kompliziertere config mit z.B. Edge-Side-Includes, oder dass der webserver dienen, die direkt von memcached oder mogilefs (beide Dinge, die nginx tun können), oder ein load-balancing /HA config.
-f
oder-k
Optionen, können nur eine einzelne Anforderung in einer Zeit, so dass es nicht ideal für die Produktion. Auf der anderen Seite, wenn Sie den Catalyst-server-Skript mit-f
, was verwendet wird, ist Starman 🙂Ich habe diese Frage in #schwarz und bekam folgende Antwort von @nothingmuch (ich Hinzugefügt-Formatierung):
Ein weiterer Grund ist, dass ein schlankes frontend-server (auch Apache ist OK), verbraucht wesentlich weniger Speicher pro Verbindung als eine typische Starman-Prozess (ein paar MB vs. zehn oder mehr als 100 MB). Da eine Verbindung ist offen für einige Zeit, vor allem, wenn Sie verwenden möchten, keep-alive-verbindungen unterstützen Sie eine große Anzahl von gleichzeitigen verbindungen, die mit viel weniger RAM. Nur stellen Sie sicher, dass die Puffergröße der Proxyfunktion frontend-server ist groß genug, um die Last ein typischer HTTP-Antwort sofort aus dem backend. Dann das backend ist kostenlos, mit der Verarbeitung der nächsten Anfrage.