nscgi

## nscgi -- CGI Interface

$Header: /cvsroot/aolserver/aolserver/nscgi/nscgi.html,v 1.1 2000/10/04 22:27:23 kriston 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