Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 2e9d34aa

Von Moritz Bunkus vor mehr als 14 Jahren hinzugefügt

  • ID 2e9d34aa27890e304e9e4aadcddec262b76554bb
  • Vorgänger 0ea2ddad
  • Nachfolger 7bd555b6

FastCGI-Dokumentation erweitert

Unterschiede anzeigen:

doc/INSTALL.fcgi
Allow from All
</Directory>
<DirectoryMatch //.*/users>
<DirectoryMatch /path/to/lx-office-erp/users>
Order Deny,Allow
Deny from All
</DirectoryMatch>
Variante 1 startet einfach jeden Lx-Office Request als fcgi Prozess. F?r sehr
gro?e Installationen ist das die schnellste Version, ben?tigt aber sehr viel
Arbeitspseicher (ca. 2GB).
Variante 1 startet einfach jeden Lx-Office Request als fcgi
Prozess. F?r sehr gro?e Installationen ist das die schnellste Version,
ben?tigt aber sehr viel Arbeitspseicher: wurden alle Module mindestens
einmal aufgerufen, so werden dauerhaft ca. 2GB pro Installation
belegt.
Variante 2 startet nur einen zentralen Dispatcher und lenkt alle Scripte auf
diesen. Dadurch dass zur Laufzeit ?fter mal Scripte neu geladen werden gibt es
hier kleine Performance Einbu?en.
hier kleine Performance Einbu?en. Trotzdem ist diese Variante vorzuziehen.
=head2 Entwicklungsaspekte
......
Es ist m?glich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu
betreiben. Da nimmt man Variante 2 wie oben beschrieben, und ?ndert die
MatchAlias Zeile auf eine andere URL, und l?sst alle anderen URLs auch
AliasMatch Zeile auf eine andere URL, und l?sst alle anderen URLs auch
weiterleiten:
# Zugriff ohne FastCGI
Alias /web/path/to/lx-office-erp /path/to/lx-office-erp
# Zugriff mit FastCGI:
AliasMatch ^/web/path/to/lx-office-erp-fcgi/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
AliasMatch ^/web/path/to/lx-office-erp-fcgi/(.*) /path/to/lx-office-erp/$1
Alias /web/path/to/lx-office-erp-fcgi/ /path/to/lx-office-erp/
Dann ist unter C</web/path/to/lx-office-erp/> die normale Version erreichbar,
und unter C</web/opath/to/lx-office-erp-fcgi/> die FastCGI Version.
......
dass das Programm in einer Endlosschleife l?uft, m?ssen folgende Aspekte
geachtet werden:
=head3 C<warn>, C<die>, C<exit>, C<carp>, C<confess>
=head3 Programmende und Ausnahmen: C<warn>, C<die>, C<exit>, C<carp>, C<confess>
Fehler die normalerweise dass Programm sofort beenden (fatale Fehler) werden
mit dem FastCGI Dispatcher abgefangen, um das Programm amLaufen zu halten. Man
Fehler, die dass Programm normalerweise sofort beenden (fatale Fehler), werden
mit dem FastCGI Dispatcher abgefangen, um das Programm am Laufen zu halten. Man
kann mit C<die>, C<confess> oder C<carp> Fehler ausgeben, die dann vom Dispatcher
angezeigt werden. Die Lx-Office eigene C<$::form->error()> tut im Prinzip das
Gleiche, mit ein paar Extraoptionen. C<warn> und C<exit> hingegen werden nicht
abgefangen. C<warn> wird direkt nach STDERR, also in Server Log eine Nachricht
schreiben, und C<exit> wird die Ausf?hrung beenden.
Prinzipiell ist es ein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn
sofort neu starten, allerdings sollte das die Ausnahme sein. Quintessenz: Bitte
kein C<warn> oder C<exit> benutzen, alle anderen Excepionmechanismen sind ok.
Prinzipiell ist es kein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn
sofort neu starten. Allerdings sollte das die Ausnahme sein. Quintessenz: Bitte
kein C<warn> oder C<exit> benutzen, alle anderen Exceptionmechanismen sind ok.
=head3 Globale Variablen
Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen
Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen,
m?ssen alle globalen Variablen vor einem Request sauber initialisiert werden.
Das ist besonders wichtig im C<$::cgi> und C<$::auth> Objekt, weil diese nicht
gel?scht werden pro Instanz, sondern persistent gehalten werden.

Auch abrufbar als: Unified diff