Re: FCGI Externally Managed Servers

Mark Brown (mbrown@OpenMarket.com)
Tue, 21 May 1996 14:45:31 -0400

Message-Id: <199605211846.OAA03252@breckenridge.openmarket.com>
To: Patrick Walsh/VGI <Patrick_Walsh@vanguard.com>
Subject: Re: FCGI Externally Managed Servers 
In-Reply-To: Your message of "21 May 1996 12:24:02 EST."
             <9605211926.AA7960@VGI1MAIL.vanguard.com> 
Date: Tue, 21 May 1996 14:45:31 -0400
From: Mark Brown <mbrown@OpenMarket.com>


    After starting the httpd server, we invoke our externally managed
    programs as follows:

        cgi-fcgi -start -connect :9999 DA.fcgi

I don't understand why you'd use cgi-fcgi to communicate with your
external application.  The effect of the ExternalAppClass
and Responder directives are to provide access to the application
(via the URL path /x/DA in your example); you don't need cgi-fcgi
except for *starting* the application.

    We tried the following:

        cgi-fcgi -start -connect :9999 DA.fcgi 2

   to start 2 instances of DA.fcgi (our externally managed process).
   It doesn't work, we are not sure why yet.  Is this legal?

Looks to me like it should start two processes for you.  Does it start
one or none?

    The App class info (in config/httpd.config) is defined as follows:

        ExternalAppClass DA -host renoir:9999
        Responder DA /x/DA

That looks fine.  Another option if you are running multiple
processes is to run them on separate ports.  On renoir you'd do

    renoir> cgi-fcgi -start -connect :9998 DA.fcgi
    renoir> cgi-fcgi -start -connect :9999 DA.fcgi

Then in your httpd.config you'd say

    ExternalAppClass DA -host renoir:9998 -array 2
    Responder DA /x/DA

This config, with one process per port, doesn't load-balance
quite as well as the other config where the two processes
share one port.  But if for some reason you can't get the shared
port to work for you, this is a fallback.

    --mark