Eine sehr beliebte Wahl für die Ausführung von Perl-Webanwendungen scheint heutzutage hinter einem nginx-Webserver zu liegen, der Anfragen an einen FastCGI-Daemon oder einen PSGI-fähigen Webserver sendet (zB Starman) .nginx und Perl: FastCGI vs reverse proxy (PSGI/Starman)
Es gab viele Frage gewesen, warum würde man im Allgemeinen dies tun (zB Why use nginx with Catalyst/Plack/Starman?) und die Antworten scheinen in beiden Fällen anzuwenden (zB erlauben nginx statische Inhalte, einfach Neustart des Anwendungsservers, Lastenausgleich zu dienen usw.)
Ich interessiere mich jedoch speziell für die Vor-/Nachteile der Verwendung von FastCGI gegenüber einem Reverse-Proxy-Ansatz. Es scheint, dass Starman weithin als der schnellste und beste Perl PSGI-Anwendung/Web-Server da draußen betrachtet wird, und ich habe Schwierigkeiten, irgendwelche Vorteile zu sehen, FastCGI überhaupt zu verwenden. Beide Ansätze scheinen zu unterstützen:
- UNIX Domain Sockets aswell als TCP-Sockets
- Gabel/Prozess-Manager-Server aswell als non-blocking ereignisbasierte (z AnyEvent) Servern.
- Signal Handling/ordnungsgemäßer Start
- PSGI
Ähnlich nginx-Konfiguration für beide Optionen sehr ähnlich ist.
Warum also würden Sie sich für eines entscheiden?
Original-Client-IP-Adresse in X-Forwarded-For-Header und ursprüngliche Host-Header in X-Forwarded- geben wird übergeben wird Host-Header, so sind die ersten beiden Nachteile nicht wichtig. – marpetr
+1 danke für den Vergleich. Da ein Master-Prozess zum Verwalten von Back-End-Prozessen und -Threads ausgeführt werden kann, ist Punkt 3 kein Problem. Sie haben einen interessanten Punkt in Bezug auf Zope und die Art und Weise, wie Sie die ursprüngliche Client-IP und den Hostnamen kennen, um gültige URLs zu erstellen, angesprochen – Viet