nscgi -- CGI Interface

$Header: /usr/local/cvsroot/nsd/aolserver/nscgi/nscgi.html,v 1.1.1.1 2000/10/24 22:11:39 mayoff Exp $

Theory of Operation
Known Issues
Sample Configuration


Theory of Operation

The nscgi module provides the traditional Common Gateway Interface (CGI) that web servers use to run external applications.  The nscgi module works well for small- to  medium-sized applications.  For large applications, it should not be used due to the severe load that running external applications will place on a system.  More modern approaches use ADP, Tcl, and C libraries instead.

Known Issues

The Common Gateway Interface is inefficient, wasteful, and slow -- and nscgi is no exception.  AOLserver provides a better solution in the form of a robust, in-process scripting language with rich Tcl and C API's.  The nscgi module should only be used for legacy applications for which no redesign is possible.

Sample Configuration

#
# CGI interface -- nscgi
#
# Note: CGI is *vastly* inferior to ADP's or even built-in Tcl libraries.
#
ns_section "ns/server/${servername}/module/nscgi"
ns_param   debug           false
ns_param   gethostbyaddr   false     ;# Whether to do reverse DNS lookups
ns_param   limit           0         ;# Max number of concurrent CGI processes
ns_param   maxoutput       10240     ;# Max bytes allowed from external process
ns_param   buffersize      8192      ;# Buffer output from external process
ns_param   map \
    "GET /cgi /usr/local/cgi"        ;# Where your CGI executables live (GET)
ns_param   map \
    "POST /cgi /usr/local/cgi"       ;# Where your CGI executables live (POST)
# CGI environment variable handling -- See admin guide
ns_param   systemenvironment false   ;# Copies environment from nsd start shell