The syntax of the configuration files for esehttpd is very similar to the httpd.conf files for apache. Each line of a configuration file consists of a directive and arguments for it. How arguments are interpreted is depend on the directive. White spaces(including TABs) are ignored, Lines starting with '#' are ignored.
To change configurations for a potion of the server, write directives inside a section between <VirtualHost>...</VirtualHost>, <Directory>...</Directory>, <FilesMatch>...</FilesMatch>, or <Limit>...</Limit>.
If an argument expresses a path name or a regular expression, you can quote it with "". The backslash character works as the escape inside the quotes.
BindAddress ADDRESSADDRESS to bind. If not specified, esehttpd accepts connections to all addresses on the server. You need not to use this directive if you don't need to specify an address to bind.
User NAMENAME must not be the super user.
Group NAMENAME must not be the super user.
MaxFiles NUMBERStartServers NUMBERChangeRoot DIRNAMEListenBacklog NUMBERSendBufferSize NUMBERRecvBufferSize NUMBERFileCacheSize NUMBERFileCacheThreshold NUMBERNUMBER will be candidates for caching. If 0 is specified, all the files can be cached. The default value is 0.
SendCGIErrors (On|Off)MultipleAccept (On|Off)ForceLingeringClose (On|Off)LingeringCloseLimit NUMBERRequestHeaderLimit NUMBERRequestBodyLimit NUMBERScriptEvalMax NUMBERNUMBER times, the worker process exits and another worker will started. This option is affective only if StartServers is more than 1.
<VirtualHost HOSTNAME><VirtualHost> and </VirtualHost>. The following directives can be written outside of <VirtualHost>...<VirtualHost> clauses, and such directives are affected to the 'default' virtualhost.
Port NUMBERNUMBER should be 80 in most cases. If this directive is not specified, esehttpd does not accept HTTP connections.
ServerName HOSTNAMElocalhost.
PassEnv NAME [...]CustomLog FILENAME [LOGTYPE]LOGTYPE must be 'common' or 'combined'. The default value for LOGTYPE is 'common'.
DocumentRoot DIRNAMETypesConfig FILENAMEErrorDocumentDir DIRNAMETimeOut SECSSLPort NUMBERNUMBER should be 443 in most cases. If not specified, esehttpd does not accept HTTPS connections. If neither Port nor SSLPort is specified, such a virtual server does noting.
SSLCertificateFile FILENAMEFILENAME must be in PEM format. This option must be set if you want to use SSL.
SSLCertificateKeyFile FILENAMEFILENAME must contain a RSA key in PEM format. If this option is not specified, esehttpd tries to read private key for the server from the file specified by SSLCertificateFile instead.
SSLCACertificateFile FILENAMEFILENAME must be in PEM format. This directive is necessary if you want to use client authentifications.
SSLDHParamFile FILENAMESSLCipherSuite STRINGAlias URI DIRNAMEURI to the directory DIRNAME.
ScriptAlias URI DIRNAME [MODULENAME]URI to the directory DIRENAME, and uses the module MODULENAME as the default handler for the URI. If MODULENAME is omitted, cgi-script module is used.
<Directory DIRNAME><Directory DIRNAME> and </Directory>. These directives can be written outside of <Directory> sections, and such lines are affected to the files that don't match any <Directory> sections.
AuthUserFile FILENAMEesepasswd command.
AuthName NAMEDirectoryIndex FILENAME [...]DefaultType MIMETYPEAddType MIMETYPE SUFFIXSUFFIX.
AddHandler MODULENAME SUFFIXSUFFIX.
Options OPTION [...]OPTION must be 'Indexes' or 'NoFileCache'. If 'Indexes' is specified, directory listings are allowed for the directory. If 'NoFileCache' is specified, file caching is disabled for the directory contents.
SSLVerifyClient REQUIREMENTREQUIREMENT must be 'require' or 'none'. If REQUIREMENT is 'require', esehttpd requests the client a certificate.
SSLVerifyDepth NUMBER<FilesMatch PATTERN><FilesMatch PATTERN> and </FilesMatch>. If a file is matched to more than one <FilesMatch sections, the first one in the configuration file is affected. The following directives can be written outside of <FilesMatch> sections, and such lines are affective to files that don't match any <FilesMatch> sections.
<Limit METHOD [...]><Limit METHOD> and </Limit>. These directives can be written outside of <Limit> sections, and such lines are affective to requests that don't match any <Limit> sections.
Require user USERNAME [...]USERNAME [...] are allowed to do the request for the URI. Esehttpd sees the password file specified by AuthUserFile directive in order to judge if the supplied password is correct.
Require valid-user<Directory> sections, apache treats it as a directive affective for all the files. Esehttpd doesn't treat it as apache does, and treat it as a directive affective for the files that don't match any <Directory> sections. For <VirtualHost> and others, the same difference exists.