Difference between revisions of "Conf/Examples/Full"
Jump to navigation
Jump to search
(Created page with '= Full Configuration = part of AOLserver Config Examples # # AOLServer 4 configuration file. # # Copyright (C) 2003-2009 Francesco P. Lovergi…') |
(No difference)
|
Latest revision as of 10:08, 26 December 2011
Full Configuration
part of AOLserver Config Examples
# # AOLServer 4 configuration file. # # Copyright (C) 2003-2009 Francesco P. Lovergine <frankie@debian.org> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # On Debian GNU/Linux systems a copy of the license is available # as /usr/share/common-licenses/GPL. #
# # AOLServer can run multiple domains on a single machine. # # You can add more ns/server/domain sections and use the -s domain # command line option to use the same configuration file in multi-configuration # flavor. You could also use more configuration files and run multiple # instances of the daemon, alternatively. # # This file use a single 'main' domain per default. #
array set debian_config {
HOSTNAME localhost
#ADDRESS 0.0.0.0
ADDRESS 127.0.0.1
HTTP_PORT 8000
HTTPS_PORT 443
}
proc parse_shell_snippet {filename} {
global debian_config
set fd [open $filename r]
set line_no 1
while {![eof $fd]} {
set line [string trim [gets $fd] " "]
if {$line == ""} continue
switch -regexp -- $line {
^#.* { }
.*=.* {
set pair [split $line =]
set name [string trim [lindex $pair 0] " "]
set value [string trim [lindex $pair 1] " "]
set debian_config($name) $value
}
default {
error "Error parsing $filename (line: $line_no): $line"
}
}
incr line_no
}
close $fd
}
# # Parse default vars snippet file # parse_shell_snippet /etc/default/aolserver4
############################################################################################# # # GLOBAL VARIABLES #
set httpport $debian_config(HTTP_PORT) set httpsport $debian_config(HTTPS_PORT) set controlport 9999
set hostname $debian_config(HOSTNAME) set address $debian_config(ADDRESS)
set servername main set serverdesc "AOLServer Site" set package aolserver4
set pageroot /var/www set directoryfile index.adp,index.html,index.htm
set homedir /usr/lib/${package}
set bindir ${homedir}/bin
set sslmodule nsssl.so
set sslkeyfile ${homedir}/servers/${servername}/modules/nsssl/keyfile.pem
set sslcertfile ${homedir}/servers/${servername}/modules/nsssl/certfile.pem
set serverlog /var/log/${package}/${package}.log
set pidfile /var/run/${package}/${package}.pid
############################################################################################## # # GLOBAL SERVER PARAMETERS # # ns_section "ns/parameters"
ns_param home ${homedir}
ns_param debug false
ns_param servername ${servername}
ns_param user www-data ns_param group www-data
# Data structures ns_param dstringcachemaxentries 10 ;# Max no. of Dstrings to put on cache ns_param dstringcachemaxsize [expr 3*1024] ns_param iobufsize 16000 ;# Buffer size suitable for I/O
# Limits
ns_param keepalivetimeout 30 ;# Max time conn is kept alive (keepalive)
;# (set to 0 to disable keepalive)
ns_param listenbacklog 32 ;# Max length of pending conn queue
ns_param maxkeepalive 100 ;# Max no. of conns in keepalive state
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 serverlog ${serverlog} ;# Logging file name
ns_param pidfile ${pidfile} ;# pid of server file name
# 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 checkexitcode false ;# Check exit code on forked process ns_param crashcmd ns_crash ;# A Tcl command that dumps core. ns_param mailhost localhost ;# SMTP host for ns_sendmail
############################################################################################## # # MODULE CONFIGURATIONS # #
# # 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 default "*/*" ;# MIME type for unknown extension ns_param noextension "*/*" ;# MIME type for missing extension #ns_param ".xls" "application/vnd.ms-excel"
# # I18N Mime-types; define content-type header values # to be mapped from these file-types. # Note that you can map file-types of adp files to control # the output encoding through mime-type specificaion. # Remember to add an adp mapping for that extension. # ns_param .adp "text/html; charset=iso-8859-1" ns_param .u_adp "text/html; charset=UTF-8" ns_param .gb_adp "text/html; charset=GB2312" ns_param .sjis_html "text/html; charset=shift_jis" ns_param .sjis_adp "text/html; charset=shift_jis" ns_param .gb_html "text/html; charset=GB2312"
# # I18N File-type to Encoding mappings # ns_section "ns/encodings" ns_param .utf_html "utf-8" ns_param .sjis_html "shiftjis" ns_param .gb_html "gb2312" ns_param .big5_html "big5" ns_param .euc-cn_html "euc-cn"
# # Note: you will need to include file-type to encoding mappings # for ANY source files that are to be used, to allow the # server to handle them properly. E.g., the following # asserts that the GB-producing .adp files are themselves # encoded in GB2312 (this is not simply assumed). # ns_param .gb_adp "gb2312"
#
# 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)
########################################################################################## # # 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 $servername $serverdesc ;# 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 flushcontent false ;# Flush all data before returning ns_param maxconnections 100 ;# Max connections to put on queue ns_param maxdropped 0 ;# Shut down if dropping too many conns 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 threads die at this rate
# Limits ns_param maxheaders 16384 ;# Max no. of headers from client ns_param maxline 8192 ;# Max line length from client ns_param maxpost 65536 ;# Max bytes on a POST ns_param sendfdthreshold 2048 ;# Min size of file descriptor to send
# Performance statistics gathering ns_param globalstats true ;# Enable built-in statistics ns_param urlstats true ;# Enable URL statistics ns_param maxurlstats 1000 ;# Max number of URL's to do stats on
# Directory listings can be generated with an ADP or a Tcl proc. ns_param directoryadp $homedir/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
#
# Fast path configuration is used to configure options used for serving
# static content, and also provides options to automatically display
# directory listings.
#
# Parameters:
#
# cache Boolean. Enable cache for normal URLs.
# Optional, default is false.
# cachemaxsize Integer. Size of fast path cache.
# Optional, default is 5120000.
# cachemaxentry Integer. Largest file size allowed in cache.
# Optional, default is cachemaxsize / 10.
# mmap Boolean. Use mmap() for cache.
# Optional, default is false.
# directoryfile String. Directory index/default page to
# look for. Optional, default is directoryfile
# parameter set in ns/server/${servername} section.
# directorylisting String. Directory listing style. Optional,
# Can be "fancy" or "simple".
# directoryproc 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.
# directoryadp String. Name of ADP page to use to display
# directory listings. Optional. You can either
# specify directoryadp or directoryproc - not both.
#
#
# ns_section "ns/server/${servername}/fastpath"
# ns_param directorylisting fancy
#
ns_section "ns/server/${servername}/fastpath"
ns_param cache true ;# Enable cache for normal URLs
ns_param cachemaxentry 8192 ;# Largest file size allowable in cache
ns_param cachemaxsize [expr 5000*1024] ;# Size of fastpath cache
ns_param mmap false ;# Use mmap() for cache
#
# Tcl interpreter
#
ns_section "ns/server/${servername}/tcl"
ns_param autoclose true ;# Close files the Tcl interp opened
ns_param debug false ;# Names of files sourced is logged
ns_param nsvbuckets 8 ;# No. of buckets to hold nsv's
ns_param statlevel 0 ;# How many levels deep to run tclstats
ns_param statmaxbuf 100 ;# Maximum entries in tclstats table
ns_param library $homedir/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] ns_param taglocks false ;# Enable post-ini creation of ADP tags ns_param threadcache false ;# default for Tcl 7.6 (nsd76) ns_param threadcache true ;# default for Tcl 8.2 (nsd82)
# 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 $hostname ;# This is not the same as your hostname
ns_param address $address ;# This is not the same as your host addr
ns_param location "http://$hostname/" ;# URL for auto-redirects (trailing slash)
#
# Socket driver module (HTTPS) -- nsssl
#
ns_section "ns/server/${servername}/module/nsssl"
ns_param port $httpsport
ns_param hostname $hostname
ns_param address $address
ns_param keyfile $sslkeyfile
ns_param certfile $sslcertfile
#
# Control port -- nscp
#
# To enable:
#
# 1. Define an address and port to listen on. For security
# reasons listening on any port other then 127.0.0.1 is
# not recommended.
#
# 2. Decided whether or not you wish to enable features such
# as password echoing at login time, and command logging.
#
# 3. Add a list of authorized users and passwords. The entires
# take the following format:
#
# <user>:<encryptedPassword>:
#
# You can use the ns_crypt Tcl command to generate an encrypted
# password. The ns_crypt command uses the same algorithm as the
# Unix crypt(3) command. You could also use passwords from the
# /etc/passwd file.
#
# The first two characters of the password are the salt - they can be
# anything since the salt is used to simply introduce disorder into
# the encoding algorithm.
#
# ns_crypt <key> <salt>
# ns_crypt x t2
#
# The configuration example below adds the user "nsadmin" with a
# password of "x".
#
# 4. Make sure the nscp.so module is loaded in the modules section.
#
ns_section "ns/server/${servername}/module/nscp"
ns_param port $controlport ;# Control port listens on port 9999
ns_param address 127.0.0.1 ;# For security, use 127.0.0.1 only
ns_param echopassword 1
ns_param cpcmdlogging 1
ns_param reconnection off
# 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 ${serverlog}
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-lib /usr/lib/cgi-bin" ;# Where system CGI executables live (GET)
#ns_param map # "POST /cgi-lib /usr/lib/cgi-bin" ;# Where system CGI executables live (POST)
#ns_param map # "GET /cgi-bin /usr/local/cgi-bin" ;# Where your CGI executables live (GET)
#ns_param map # "POST /cgi-bin /usr/local/cgi-bin" ;# Where your CGI executables live (POST)
ns_param map "GET /cgi-bin /usr/lib/cgi-bin" ;# Where your CGI executables live (GET)
ns_param map "POST /cgi-bin /usr/lib/cgi-bin" ;# Where your CGI executables live (POST)
ns_param map "GET /*.py"
#ns_param map "GET /doc /usr/share/doc"
ns_param map "POST /*.pl"
ns_param map "POST /*.py"
ns_param interps cgiinterps
#ns_section "ns/interps/CGIinterps"
#ns_param .pl "/usr/bin/perl"
#ns_param .sh "/bin/sh"
#ns_param .py "/usr/bin/python"
# 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 $hostname ;# Hostname used in response to client
ns_param port $httpport ;# Port to listen on
ns_param socketfile /var/run/${package}/${servername}.sock ;# 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.
# Add here optional modules when needed.
#
ns_section "ns/server/${servername}/modules"
ns_param nssock nssock.so
ns_param nslog nslog.so
ns_param nscgi nscgi.so
ns_param nsperm nsperm.so
#ns_param nscp nscp.so
#if { [file exists $sslcertfile] && [file exists $sslkeyfile] } {
#ns_param nsssl nsssl.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
#
# Example: Multiple connection thread pools.
#
# To enable:
#
# 1. Define one or more thread pools.
# 2. Configure pools as with the default server pool.
# 3. Map method/URL combinations to the pools
#
# All unmapped method/URL's will go to the default server pool.
#
#ns_section ns/server/main/pools
#ns_section slow "Slow requests here."
#ns_section fast "Fast requests here."
#
#ns_section ns/server/main/pool/slow
#ns_param map {POST /slowupload.adp}
#ns_param maxconnections 100 ;# Max connections to put on queue
#ns_param maxdropped 0 ;# Shut down if dropping too many conns
#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 threads die at this rate
#
#ns_section ns/server/main/pool/fast
#ns_param map {GET /faststuff.adp}
#ns_param maxthreads 10
#
# # Example: Web based stats interface. # # To enable: # # 1. Configure whether or not stats are enabled. (Optional: default = false) # 2. Configure URL for statistics. (Optional: default = /_stats) # # http://<host>:<port>/_stats # # 3. Configure user. (Optional: default = aolserver) # 4. Configure password. (Optional: default = stats) # # For added security it is recommended that configure your own # URL, user, and password instead of using the default values. # #ns_section ns/server/stats # ns_param enabled 1 # ns_param url /aolserver/stats # ns_param user nsadmin # ns_param password 23dfs!d #