Difference between revisions of "Annotated AOLserver Configuration Reference"
Jump to navigation
Jump to search
(added to fastpath options: directoryfile, directorylisting, directoryproc and directoryadp) |
|||
| Line 112: | Line 112: | ||
# | # | ||
ns_section "ns/server/${servername}/fastpath" | ns_section "ns/server/${servername}/fastpath" | ||
| − | ns_param cache true ;# Enable cache for normal URLs | + | ns_param cache true ;# Enable cache for normal URLs; default: false |
| − | ns_param cachemaxentry 8192 ;# Largest file size allowable in cache | + | ns_param cachemaxentry 8192 ;# Largest file size allowable in cache; default: cachemaxsize/10 |
| − | ns_param cachemaxsize [expr 5000*1024] ;# Size of fastpath cache | + | ns_param cachemaxsize [expr 5000*1024] ;# Size of fastpath cache; default: 5120000 |
| − | ns_param mmap false ;# Use mmap() for cache | + | ns_param mmap false ;# Use mmap() for cache; default: false |
| + | ns_param directoryfile index.adp,index.tcl,index.html,index.htm | ||
| + | ;# String. Directory index/default page to look for. | ||
| + | ;# Optional, default is directoryfile parameter set in | ||
| + | ;# ns/server/${servername} section. | ||
| + | ns_param directorylisting fancy ;# Directory listing style. | ||
| + | ;# Optional, can be "fancy" or "simple". | ||
| + | ns_param directoryproc _ns_dirlist ;# String. Name of Tcl proc to use to display | ||
| + | ;# directory listings. Optional, default is to use | ||
| + | ;# _ns_dirlist. You can either specify directoryproc, | ||
| + | ;# or directoryadp - not both. | ||
| + | ;#ns_param directoryadp dir.adp ;# String. Name of ADP page to use to display directory | ||
| + | ;# listings. Optional. You can either specify directoryadp | ||
| + | ;# or directoryproc - not both. | ||
# | # | ||
Latest revision as of 09:54, 9 February 2009
[ Please make comments on the Talk:Annotated_AOLserver_Configuration_Reference page. ]
#
# config-reference.tcl.txt --
#
# Annotated AOLserver Configuration Reference
#
# Nearly every AOLserver configuration variable is represented
# here. This file is provided as a reference -- please do not load
# this into your server.
#
#
# Global parameters
#
ns_section "ns/parameters"
ns_param home $home ;# Server's home directory
# Limits
ns_param listenbacklog 32 ;# Max length of pending conn queue
ns_param schedmaxelapsed 2 ;# Warn when waiting on really long procs
ns_param shutdowntimeout 20 ;# Secs to wait on shutdown if open conns
# Server logging
ns_param dev true ;# Display logging with "Dev" severity
ns_param debug false ;# Display logging with "Debug" severity
ns_param logexpanded false ;# true = double-spaced server.log
ns_param logroll false ;# Roll server.log every 24 hours.
ns_param maxbackup 10 ;# Max number of old server.log files
ns_param pidfile "nspid" ;# PID of server (named "nspid.PORT")
ns_param serverlog "server.log" ;# Filename of server.log
# DNS tuning
ns_param dnscache true ;# In-memory cache of DNS lookups
ns_param dnscachetimeout 60 ;# How long to keep hostnames in cache
# Miscellaneous
ns_param mailhost smtp.yourcompany.com ;# SMTP host for ns_sendmail
#
# Thread library (nsthread) parameters
#
ns_section "ns/threads"
ns_param mutexmeter true ;# measure lock contention
ns_param stacksize [expr 128*1024] ;# stack size per thread (in bytes)
#
# MIME types.
#
# Note: AOLserver already has an exhaustive list of MIME types, but in
# case something is missing you can add it here.
#
ns_section "ns/mimetypes"
ns_param ".xls" "application/vnd.ms-excel"
ns_param default "*/*" ;# MIME type for unknown extension
ns_param noextension "*/*" ;# MIME type for missing extension
############################################################
#
# Server-level configuration
#
# There is only one server in AOLserver, but this is helpful when multiple
# servers share the same configuration file. This file assumes that only
# one server is in use so it is set at the top.
#
ns_section "ns/servers"
ns_param $server $servername ;# Name of virtual server.
#
# Server parameters
#
ns_section "ns/server/${servername}"
ns_param directoryfile $directoryfile ;# List of files to use (index.html)
ns_param pageroot $pageroot ;# Directory under which all pages live
# Tuning options
ns_param connsperthread 0 ;# Normally there's one conn per thread
ns_param maxthreads 20 ;# Tune this to scale your server
ns_param minthreads 0 ;# Tune this to scale your server
ns_param threadtimeout 120 ;# Idle timeout for connection threads
ns_param maxconnections 100 ;# Max connections per connection thread before it is shut down
ns_param spread 20 ;# Variance factor for threadtimeout and maxconnections
;# to prevent mass mortality of theads (e.g. +-20%)
# Limits
ns_param maxline 8192 ;# Max line length from client
# Directory listings can be generated with an ADP or a Tcl proc.
ns_param directoryadp $home/dirlist.adp ;# Choose one or the other
ns_param directoryproc _ns_dirlist ;# ...but not both!
ns_param directorylisting simple ;# Can be simple or fancy (for ns_dirlist)
# Miscellaneous
ns_param checkmodifiedsince true ;# Check url if no If-Modified-Since?
ns_param enableaolpress false ;# Enable extra features used by AOLpress
ns_param headercase preserve ;# tolower, toupper, preserve
#
# Internal redirects
#
ns_section "ns/server/${servername}/redirects"
ns_param 404 "/notfound.html" ;# Not Found error page
ns_param 500 "/servererror.html" ;# Server Error page
#
# Fastpath serves HTML
#
ns_section "ns/server/${servername}/fastpath"
ns_param cache true ;# Enable cache for normal URLs; default: false
ns_param cachemaxentry 8192 ;# Largest file size allowable in cache; default: cachemaxsize/10
ns_param cachemaxsize [expr 5000*1024] ;# Size of fastpath cache; default: 5120000
ns_param mmap false ;# Use mmap() for cache; default: false
ns_param directoryfile index.adp,index.tcl,index.html,index.htm
;# String. Directory index/default page to look for.
;# Optional, default is directoryfile parameter set in
;# ns/server/${servername} section.
ns_param directorylisting fancy ;# Directory listing style.
;# Optional, can be "fancy" or "simple".
ns_param directoryproc _ns_dirlist ;# String. Name of Tcl proc to use to display
;# directory listings. Optional, default is to use
;# _ns_dirlist. You can either specify directoryproc,
;# or directoryadp - not both.
;#ns_param directoryadp dir.adp ;# String. Name of ADP page to use to display directory
;# listings. Optional. You can either specify directoryadp
;# or directoryproc - not both.
#
# Tcl interpreter
#
ns_section "ns/server/${servername}/tcl"
ns_param debug false ;# Names of files sourced is logged
ns_param nsvbuckets 8 ;# No. of buckets to hold nsv's
ns_param library "$home/servers/${servername}/modules/tcl" ;# Private tcl library for the server
#
# ADP (AOLserver Dynamic Page) configuration
#
ns_section "ns/server/${servername}/adp"
# ADP features
ns_param map "/*.adp" ;# Extensions to parse as ADP's
ns_param map "/*.html" ;# Any extension can be mapped
ns_param enableexpire true ;# Set "Expires: now" on all ADP's
ns_param enabledebug true ;# Turn on Tclpro debugging with "?debug"
ns_param debuginit "ns_adp_debuginit" ;# Debug procedure
# ADP tuning
ns_param cache true ;# In-memory cache of ADP's
ns_param cachesize [expr 5000*1024]
# ADP special pages
ns_param errorpage ${pageroot}/errorpage.adp ;# Pretty-print ADP errors with an ADP
ns_param startpage ${pageroot}/startpage.inc ;# Page to include for all ADP's
#
# ADP custom parsers -- see adp.c
#
ns_section "ns/server/${servername}/adp/parsers"
ns_param adp ".adp" ;# The simple parser looks for <\% ... \%>
ns_param fancy ".adp" ;# The fancy parser does a lot more.
#
# Socket driver module (HTTP) -- nssock
#
ns_section "ns/server/${servername}/module/nssock"
ns_param port $httpport ;# Port for HTTP (typically 80)
ns_param hostname $host ;# This is not the same as your hostname
ns_param address $address ;# This is not the same as your host addr
ns_param location "url" ;# URL for auto-redirects (trailing slash)
ns_param maxinput [expr 5 * 1024 * 1024] ;# Maximum file size for uploads in bytes, default is 1MB, new in AOLserver 4.01
ns_param keepwait 30 ;# Max time conn is kept alive (keepalive)
;# (set to 0 to disable keepalive)
#
# Socket driver module (HTTPS) -- nsssl
#
ns_section "ns/server/${servername}/module/nsssl"
ns_param port $httpsport ;# Port for HTTPS (typically 443)
ns_param hostname $host ;# This is not the same as your hostname
ns_param address $address ;# This is not the same as your host addr
ns_param keyfile ${home}/servers/${servername}/modules/nsssl/keyfile.pem
ns_param certfile ${home}/servers/${servername}/modules/nsssl/certfile.pem
#
# Control port -- nscp
#
ns_section "ns/server/${servername}/module/nscp"
ns_param port 9999 ;# Control port listens on port 9999
ns_param address "127.0.0.1" ;# For security, use 127.0.0.1 only
# Control port users
ns_section "ns/server/${servername}/module/nscp/users"
# The default password for nsadmin is "x". You should change it.
# type "ns_crypt newpassword salt" and put the encrypted string below.
ns_param user "nsadmin:t2GqvvaiIUbF2:" ;# sample user="nsadmin", pw="x".
#
# Access log -- nslog
#
ns_section "ns/server/${servername}/module/nslog"
ns_param file "access.log"
ns_param formattedtime true ;# true=common log format
ns_param logcombined false ;# true==NCSA combined format
ns_param maxbackup 5 ;# Max number to keep around when rolling
ns_param rollhour 0 ;# Time to roll log
ns_param rolllog true ;# Should we roll log?
ns_param rollonsignal true ;# Roll log on SIGHUP
#
# 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 ;# Be chatty in log
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
#
# Access control (permissions) -- nsperm
#
ns_section "ns/server/${servername}/module/nsperm"
#
# Unix domain socket driver -- nsunix
#
ns_section "ns/server/${servername}/module/nsunix"
ns_param hostname "host" ;# Hostname used in response to client
ns_param port "port" ;# Port to listen on
ns_param socketfile "path.name" ;# UNIX domain socket driver
#
# Virtual Hosting redirector -- nsvhr
#
ns_section "ns/server/${servername}/module/nsvhr"
ns_param busyurl "url" ;# Redirect here if back-end times out
ns_param errorurl "url" ;# Redirect here on proxy errors
ns_param method "GET" ;# Methods allowed to proxy
ns_param method "POST" ;# Methods allowed to proxy (can have >1)
ns_param timeout 30 ;# Timeout waiting for back-end
# Register hosts to proxy
ns_section "ns/server/${servername}/module/nsvhr/maps"
ns_param "www.tcpsocket.com" "http://127.0.0.0:2000" ;# HTTP proxy
ns_param "www.domainsocket.com" "unix://somehost" ;# Domain socket
#
# Database drivers
#
# Two pools are given here. Sybase uses the Sybase client libraries,
# obtained from Sybase. Postgres is freely available at
# www.postgresql.org. Sybase uses an external proxy daemon while
# Postgres uses an internal driver. The Sybase driver requires some
# configuration in ns/db/driver/sybase_driver to tell th "nsext.so"
# driver where to find the nssybpd executable and some other things.
# The Postgres driver doesn't need any of that because it's internal
# and does not use nsext.so.
#
ns_section "ns/db/drivers"
ns_param sybase_driver nsext.so ;# Use nsext.so for a proxy daemon
ns_param postgres_driver nspostgres.so ;# An internal driver
ns_section "ns/db/driver/sybase_driver"
ns_param localdaemon nssybpd ;# Name of the proxy daemon executable
ns_param param path_to_sybase ;# Usually the $SYBASE env var
ns_section "ns/db/pools"
ns_param sybase_pool "Sybase Pool"
ns_param postgres_pool "Postgres Pool"
ns_section "ns/db/pool/sybase_pool"
ns_param driver sybase_driver
ns_param datasource SERVER_NAME:database_name
ns_param user user_name
ns_param password password
ns_param connections 1
ns_param logsqlerrors true ;# Verbose SQL query error logging
ns_param verbose false ;# Verbose error logging
ns_param maxidle 600 ;# Max time to keep idle db conn open
ns_param maxopen 3600 ;# Max time to keep active db conn open
ns_section "ns/db/pool/postgres_pool"
ns_param driver postgres_driver
ns_param datasource HOSTNAME:PORT:database_name
ns_param user user_name
ns_param password password
ns_param connections 1
ns_param logsqlerrors true ;# Verbose SQL query error logging
ns_param verbose false ;# Verbose error logging
ns_param maxidle 600 ;# Max time to keep idle db conn open
ns_param maxopen 3600 ;# Max time to keep active db conn open
#
# Accessing DB pools
#
# In the case of virtual servers you can give different virtual
# servers access to different databases, or you can let them access
# them all. AOLserver 3.x does not use virtual servers so the only
# useful value is "*", but if you use one config file for multiple nsd
# processes, or you are using a version of AOLserver that supports
# virtual servers, then you should list the pools you want to access.
#
ns_section "ns/server/${servername}/db"
ns_param pools * ;# Wildcard gives access to all
ns_param defaultpool sybase_pool
#
# Modules to load
#
# Note: Only load the modules you are actually going to use.
#
ns_section "ns/server/${servername}/modules"
ns_param nssock nssock.so
ns_param nsssl nsssle.so
ns_param nscp nscp.so
ns_param nslog nslog.so
ns_param nscgi nscgi.so
ns_param nsperm nsperm.so
#
# Loading a Tcl module
#
# This example shows a Tcl module, called "tcl_module", has its code
# in the AOLserver Tcl library in either the modules/tcl/tcl_module
# directory or servers/servername/modules/tcl/tcl_module directory.
#
ns_param tcl_module tcl