[racket] Web Application Deployment

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Wed Jun 23 14:52:32 EDT 2010

Jakub Piotr Cłapa wrote at 06/23/2010 02:35 PM:
> On 23.06.10 00:10, synx wrote:
>> I looked over the FastCGI and SCGI protocols, and concluded that they
>> weren't much more efficient than a protocol known as HTTP. Why not proxy
>> your data to a webserver, using apache's proxy module?
> I recently looked at FastCGI and came to the same conclusion. To be 
> honest SCGI is somewhat simpler since it handles most of the 
> validation and parsing for you. FastCGI is not since it adds much of 
> it's own boilerplate. FastCGI can be used for some other task than 
> simple HTTP proxying (e.g. delegating authentication) but AFAIK nobody 
> is using it.

The main reason not to use FastCGI is that it's a seriously ugly 
protocol. :)  I had it almost completely implemented in PLT before I 
decided that a custom Apache module or HTTP proxying was more sane, and 
then I found the almost-too-simple SCGI protocol.

We've had good success with moving a large legacy system to SCGI, and 
SCGI is proven by others (Ruby, Python, etc.).  That said, HTTP proxying 
is better if you want to do *everything* in Racket code, since then your 
system is no longer dependent on mod_scgi and scgi.ss.  Also, that keeps 
you closer to using the PLT Web Server, which is a good place to be the 
next time you need to rapidly whip up a new Web service or site or 
internal tool or something.


Posted on the users mailing list.