Forum: Ruby cgi / fcgi?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Aaron S. (Guest)
on 2007-02-19 08:18
Forgive me for my newbiness. I've never had to deal with cgi's before. I
understand that fcgi is supposed to make cgi faster. But in the case of
ruby, when i'm handling a request that was made to an fcgi. Do I handle
it through the CGI apis? I don't quite see how to handle one through
fcgi? To me FCGI seems to be  just the fcgi server?

For example, in my fcgi script. I've only been able to figure out how to
grab request data through cgi = then accessing params and what
not through that. Is that correct?

David V. (Guest)
on 2007-02-19 13:12
(Received via mailing list)
On Mon, 19 Feb 2007 07:18:16 +0100, Aaron S.
<removed_email_address@domain.invalid> wrote:

> -thanks.

Your Ruby script needs to run a FCGI binding / listener / dispatcher /
whatevertheheck too, which I think [1] provides its own mechanism for
doing this, hopefully reasonably compatible with the standard CGI
Considering you don't mention doing that, I'm going out on a limb here
suspect the superior FCGI process degrades gracefully to regular CGI in
your case.

David V.

[1] Can't for the heck of it google up any documentation myself, and
quite feel like wading through the source in hopes there's rdoc around.
Aaron S. (Guest)
on 2007-02-19 21:07
I've been looking at rails source code. The way I see it. I need to use
something similar to the spawner, which creates the fcgi processes. Then
inside of another script. Say gateway.fcgi. I trap all the different
signals that come from an fcgi request.

it appears in the rails source that if the signal is USR1 he is then
calling Dispatcher, which in turn executes the application and gets the

then in a lighttpd config, I can specify all three different process and
how to handle them, or however many processes I spawn.

like so:

fastcgi.server = ( ".fcgi" =>
    ( "localhost-8000" => ( "host" => "", "port" => 8000 ) ,
    "localhost-8001" => ( "host" => "", "port" => 8001 ) ,
    "localhost-8002" => ( "host" => "", "port" => 8002 ) )

make sense? Can it be easier then that? I'm thinking that the way rails
sets this up is for multi threading so that one request doesn't lock the
application until that request is complete.

This topic is locked and can not be replied to.