mmofacts.com

FastCGI mithilfe von Lighttpd

gepostet vor 17 Jahre, 3 Monate von Klaus
Eigentlich ist es nicht schwer, ein eigenes FCGI-Backend zu schreiben. Der Vorteil dabei ist, dass das Programm immer im Hintergrund läuft, anstatt nur für einen Reuqest zu leben. So kann man wichtige Daten im RAM vorhalten anstatt sie ständig aus einer Datenbank zu holen, oder sogar ganz auf eine Datenbank verzichten (Stichwort Memory Dump).
Man sollte nur etwas Geduld mitbringen um sich in die API von FCGI einzuarbeiten. Ich empfehle die C++-Beispiele im SDK: www.fastcgi.com/#TheDevKit
Wenn Lighty installiert ist und auch das Programm kompiliert hat, reicht es diese Zeilen in der lighttpd.conf einzutragen und den Server zu starten:

server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".fcgi" =>
(( "socket" => "/tmp/fcgi.socket",
"bin-path" => "/pfad/zur/binary",
"min-procs" => 1, # Falls man auf Multiprozesse steht, kann man diese
"max-procs" => 1, # managen lassen, ich verwendete allerdings Threads.
"max-load-per-proc" => 4
))
)
Fortan werden alle Aufrufe von existierenden *.fcgi Dateien an das Backend weitergeleitet.
Lighty macht kaum mehr als die Requests über das angegebene Socket weiterzuleiten. Darum hat man sich selbst über zusätzliche Header-Angaben oder der Dekodierung von GET/POST/COOKIE zu kümmern. Dabei helfen zahlreiche Libs oder die STL.

Auf diese Diskussion antworten