[Lazarus] GUI development for web UI

Joost van der Sluis joost at cnoc.nl
Wed Dec 1 14:16:19 CET 2010


On Tue, 2010-11-30 at 14:52 +0100, michael.vancanneyt at wisa.be wrote:
> 
> On Tue, 30 Nov 2010, Marcos Douglas wrote:
> 
> > On Tue, Nov 30, 2010 at 10:23 AM,  <michael.vancanneyt at wisa.be> wrote:
> >>
> >>
> >> On Tue, 30 Nov 2010, Marcos Douglas wrote:
> >>
> >>> On Wed, Nov 24, 2010 at 4:43 PM, Michael Van Canneyt
> >>> <michael at freepascal.org> wrote:
> >>>>
> >>>>
> >>>> On Wed, 24 Nov 2010, Marcos Douglas wrote:
> >>>>
> >>>>> On Wed, Nov 24, 2010 at 3:09 PM, Michael Van Canneyt
> >>>>> <michael at freepascal.org> wrote:
> >>>>>>
> >>>>>> Currently we're deploying a webapp that uses fpweb, FastCGI and runs as
> >>>>>> a
> >>>>>> windows service app. Although the latter is more of a necessity than a
> >>>>>> voluntary choice.
> >>>>>>
> >>>>>> The fastcgi approach makes it easy to debug.
> >>>>>
> >>>>> FastCGI or CGI gateway?
> >>>>
> >>>> FastCGI.
> >>>>
> >>>> But using the gateway shouldn't make any difference: you debug the
> >>>> fastcgi,
> >>>> not the gateway :-)
> >>>
> >>> But if you want to update the application you will have to leave the
> >>> application unavailable.
> >>> With CGI gateway you can redirect the flow to another server.
> >>
> >> In my opinion that is pointless and serves no useful purpose except maybe in
> >> a few trivial cases.
> >>
> >> The reason you use FastCGI is that you can keep things in
> >> memory during the session of the user. (DB connection, transactions and
> >> possibly complete form states)
> >>
> >> By switching to another FastCGI instance, you loose all this session
> >> information: you get the same effect as stopping and restarting fastCGI,
> >> except maybe a couple of failed requests. It's not worth the overhead IMHO.
> >
> > You rigth about the overhead...
> > And why you said: "(for the record, I use module mod_fastcgi, not the
> > mod_fcgid module)"
> > There are many differences between them?
> 
> The can do the same thing:
> By default, a fastcgi process is started by the webserver, passing it the
> socket on which it should listen.

Most imporant difference is that mod_fastcgi is deprecated and doesn't
follow the FastCGI standard. 

> But mod_fastcgi additionally allows you to specify that the fastcgi process is
> already running, and that no process should be started. The process can run
> on the same or on another machine as the Webserver:

What you described here is the FastCGI standard. This way the webserver
can scale up the amount of connections for each instance of the
cgi-process. 

>    FastCgiExternalServer D:/counte/verbruik/server -host 127.0.0.1:2015 -idle-timeout 30 -flush

You can configure mod_fcgid also this way, if you want. (Except for
debugging, I woudn't know why you would do that. And I use the embedded
webserver for debugging)

> This is very convenient, because you can start the fastcgi process in the
> debugger, just as any normal process. Or, the fastCGI process can be a
> windows service.

Hmm.. windows service could be an idea. But that scales not that easy,
offcourse.

> Other than that, the configuration option names are different.
> 
> My FastCGI process is running as a windows service.

What is exactly the reason for this? Isn't it much easier when the
webserver starts (and stops, when it is not used) the cgi-application,
than doing this in a Windows service?

Joost.





More information about the Lazarus mailing list