# A sample CRINOID.CONFIG file # put it in the CRINOID_HOME directory # # note that we only see the URL's that the HTTP server passes our # way...then we try and decide how to handle them; which process # group, if they're an 'server internal' URL, etc. # # The '.' prefixes on the commands are required and indicate # the grouping (e.g. ".script" applies to the most recent "group" # unless specified) # # -------------- CRINOID.CONFIG commands -------------------------------- # SERVICE decnetservicename defaults to 'WWWPERL' # LOGLEVEL #decimal set loglevel, logicals override # CONTROL url-wild URL prefix for server control # DEBUG url-wild URL prefix for debugging [not implemented] # THREADS #decimal # of threads for handling connections, default 5 # # USERGROUP subdir sys$login subdir for ~user type scripts (unix-style; '/www-cgi') # GROUP group user bindir named group; run as 'user'; scripts in 'bindir' (unix, full path) # # sub-commands of GROUP and USERGROUP: # .PROCESSES #min #max [group] min/max processes in group # .IDLE #min #max [group] min/max idle processes in group # .SCRIPT url-wild [group] urls that match run in 'group' # # (probably should have more commands to set process quotas, CPU limit # etc, but haven't gotten to it yet) # # sub-commands of SCRIPT: # ..BINDIR dir (`dir' is unix-style) script directory, overrides GROUP bindir # ..FLAGS #decimal debugging flags (def: 0) # ..WARN set -w Perl option # ..PERMIT Safe-opts Safe::permit(...) for script (def. ":all") # ..DENY Safe-opts Safe::deny(...) for scripts (def. "exit") # ..LOCALHOST hostname restrict URL match to .SCRIPT to a # particular local host (multihoming) # # requests for URLs are compared against '.SCRIPT' URLs in the order # in which they appear in the CRINOID.CONFIG file, so earlier .SCRIPTs # pre-empt later ones. # # For greater control, it may be desirable to define all the process # groups at the beginning of CRINOID.CONFIG, then have the .SCRIPT # commands grouped from most-specific to least-specific later in # the file. # # My experience is that CRINOID.CONFIG files tend to be very simple, # however. YMMV. # ############################################################### # # you can set the loglevel here, but logicals override # LOGLEVEL 4 ############################################################### # # CRINOID control function URL # CONTROL /cgi/control/* # # ############################################################### # # THE FOLLOWING ARE INTENDED AS EXAMPLES, EDIT TO SUIT # # The 'usergroup' is to let urls with .../~joe_user/.. get mapped to # joe_user's CGI area (userdisk:[joe_user.www-cgi]) # USERGROUP /www-cgi .SCRIPT /cgi/~* .processes 0 3 .IDLE 0 1 # ############################################################### # # a specifically 'named' process group # # # requests directed at EXAMPLE.COM only # GROUP test lane /disk$users/lane/www-test .PROCESSES 0 1 .IDLE 0 0 .SCRIPT /cgi/test/* ..LOCALHOST EXAMPLE.COM ..FLAGS 0 ..PERMIT :all ..DENY exit # # requests directed to any other localhost name # GROUP test2 lane /disk$users/lane/www-test2 .PROCESSES 0 1 .IDLE 0 0 .SCRIPT /cgi/test/* ..FLAGS 0 ..PERMIT :default ..DENY exit # # ###############################################################