Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a07567c2

Von Sven Schöling vor mehr als 14 Jahren hinzugefügt

  • ID a07567c250ce184719dd7e5cfede05d5359ac65c
  • Vorgänger b2945bf6
  • Nachfolger 63a90446

Dokumentation

Conflicts:

doc/INSTALL.fcgi

Unterschiede anzeigen:

doc/INSTALL.fcgi
1 1

  
2
1. Was ist FCGI?
2
Diese Datei ist in Plain Old Documentation geschrieben. Mit
3 3

  
4
> perldoc INSTALL.fcgi
4 5

  
6
ist sie deutlich leichter zu lesen.
5 7

  
6
2. Kombinationen aus Webservern und Plugin.
8
=head1 FastCGI f?r Lx-Office
9

  
10
=head2 Was ist FastCGI?
11

  
12
Direkt aus L<http://de.wikipedia.org/wiki/FastCGI> kopiert:
13

  
14
  FastCGI ist ein Standard f?r die Einbindung externer Software zur Generierung
15
  dynamischer Webseiten in einem Webserver. FastCGI ist vergleichbar zum Common
16
  Gateway Interface (CGI), wurde jedoch entwickelt, um dessen
17
  Performance-Probleme zu umgehen.
18

  
19

  
20
=head2 Warum FastCGI?
21

  
22
Perl Programme (wie Lx-Office eines ist) werden nicht statisch kompiliert.
23
Stattdessen werden die Quelldateien bei jedem Start ?bersetzt, was bei kurzen
24
Laufzeiten einen Gro?teil der Laufzeit ausmacht. W?hrend SQL Ledger einen
25
Gro?teil der Funktionalit?t in einzelne Module kapselt, um immer nur einen
26
kleinen Teil laden zu m?ssen, ist die Funktionalit?t von Lx-Office soweit
27
gewachsen, dass immer mehr Module auf den Rest des Programms zugreifen.
28
Zus?tzlich benutzen wir umfangreiche Bibliotheken um Funktionalt?t nicht selber
29
entwickeln zu m?ssen, die zus?tzliche Ladezeit kosten. All dies f?hrt dazu dass
30
ein Lx-Office Aufruf der Kernmasken mittlerweile deutlich l?nger dauert als
31
fr?her, und dass davon 90% f?r das Laden der Module verwendet wird.
32

  
33
Mit FastCGI werden nun die Module einmal geladen, und danach wird nur die
34
eigentliche Programmlogik ausgef?hrt.
35

  
36
=head2 Kombinationen aus Webservern und Plugin.
7 37

  
8 38
Folgende Kombinationen sind getestet:
9 39

  
10
- Apache 2.2.11 (Ubuntu) und mod_fastcgi.
40
 * Apache 2.2.11 (Ubuntu) und mod_fastcgi.
11 41

  
12 42
Folgende Kombinationen funktionieren nicht:
13 43

  
14
- Apacje 2.2.11 (Ubuntu) + mod_fcgid:
44
 * Apache 2.2.11 (Ubuntu) + mod_fcgid:
15 45

  
16 46

  
17 47

  
18
3. Konfiguration des Webservers.
48
=head2 Konfiguration des Webservers.
19 49

  
20 50
Variante 1:
21 51

  
......
23 53

  
24 54
Variante 2:
25 55

  
26
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
56
  AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
57

  
58
  <Directory /path/to/lx-office-erp>
59
    AllowOverride All
60
    AddHandler fastcgi-script .fpl
61
    Options ExecCGI Includes FollowSymlinks
62
    Order Allow,Deny
63
    Allow from All
64
  </Directory>
65

  
66
  <DirectoryMatch //.*/users>
67
    Order Deny,Allow
68
    Deny from All
69
  </DirectoryMatch>
70

  
71

  
72
Variante 1 startet einfach jeden Lx-Office Request als fcgi Prozess. F?r sehr
73
gro?e Installationen ist das die schnellste Version, ben?tigt aber sehr viel
74
Arbeitspseicher (ca. 2GB).
75

  
76
Variante 2 startet nur einen zentralen Dispatcher und lenkt alle Scripte auf
77
diesen. Dadurch dass zur Laufzeit ?fter mal Scripte neu geladen werden gibt es
78
hier kleine Performance Einbu?en.
79

  
27 80

  
28
<Directory /path/to/lx-office-erp>
29
  AllowOverride All
30
  AddHandler fastcgi-script .fpl
31
  Options ExecCGI Includes FollowSymlinks
32
  Order Allow,Deny
33
  Allow from All
34
</Directory>
81
=head2 M?gliche Fallstricke
35 82

  
36
<DirectoryMatch //.*/users>
37
  Order Deny,Allow
38
  Deny from All
39
</DirectoryMatch>
83
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation
84
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im
85
vhost.
40 86

  
87
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn
88
Templates editiert werden muss der Server neu gestartet werden.
41 89

  
42 90

  
43 91

  
44
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).
92
=head2 Performance und Statistiken
45 93

  
46
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.
94
Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz
95
besonders die Verkaufsrechnungsmaske. Ein Aufruf der Rechnungsmaske in
96
Lx-Office 2.4.3 stable dauert auf einem Core2duo mit 2GB Arbeitsspeicher und
97
Ubuntu 9.10 eine halbe Sekunde. In der 2.6.0 sind es je nach Menge der
98
definierten Variablen 1-2s. Ab der Moose/Rose::DB Version sind es 5-6s.
47 99

  
100
Mit FastCGI ist die neuste Version auf 0,4 Sekunden selbst in den kritischen
101
Pfaden, unter 0,15 sonst.
48 102

  
103
=head2 Bekannte Probleme
49 104

  
50
4. TODO
105
Bei mehreren Benutzern scheint ab und zu eine Datenbankverbidung von Rose::DB
106
in den falschen Benutzer zu geraten. Das ist ein kritischer Bug und muss gefixt
107
werden.
51 108

  
109
Bei Administrativen T?tigkeiten werden in seltenen F?llen die Locales nicht
110
richtig geladen und die Maske erscheint in Englisch.

Auch abrufbar als: Unified diff