# conf for yaws

# First we have a set of globals that apply to all virtual servers

# This is the directory where all logfiles for
# all virtual servers will be written.

logdir = /var/log/yaws


# These are the paths to directories where additional custom
# beam code can be placed. The daemon will add these
# directories to its search path.

ebin_dir = /usr/local/lib/yaws-appmods/ebin


# This is a directory where custom application specific .hrl
# files can be placed. Application-specific .yaws code can
# then include these .hrl files.

include_dir = /usr/local/lib/yaws-appmods/include


# Set this to an integer value to control
# max number of connections from clients into the server.

max_connections = nolimit


# Normally, yaws does not restrict the number of times a connection is
# kept alive using keepalive. Setting this parameter to an integer X
# will ensure that connections are closed once they have been used X times.
# This can be a useful to guard against long running connections
# collecting too much garbage in the Erlang VM.

keepalive_maxuses = nolimit


# Override the garbage collection option parameters for processes
# that handle new connections. Useful for systems expecting long-lived
# connections that handle a lot of data. The default value is Erlang's
# default. Valid options are {fullsweep_after, X} and/or {min_heap_size, Y} where
# X and Y are integers. See Erlang's erlang:spawn_opt/4 function for more
# details. The value type is a quoted string containing an Erlang proplist or
# the atom undefined.

process_options = "[]"


# Set the size of the cached acceptor process pool. The value must be an
# integer greater than or equal to 0. The default pool size is 8. Setting
# the pool size to 0 effectively disables the pool.

acceptor_pool_size = 8


# This is a debug variable, possible values are http | traffic | false
# It is also possible to set the trace (possibly to the tty) while
# invoking yaws from the shell as in
# yaws -i -T -x (see man yaws).

trace = false


# Enable this if we want to use the old OTP ssl implementation
# OTP R13B03 is known to work with this flag set to false (default).

use_old_ssl = false


# It is possible to have yaws start additional application-specific code at
# startup. Set runmod to the name of the module you want yaws to start. It
# assumes the module has an exported function start/0. To have multiple
# runmods just add more "runmod = xyz" lines.

# runmod = mymodule


# By default yaws will copy the erlang error_log and
# append it to a wrap log called report.log (in the logdir).
# This feature can be turned off. This would typically
# be the case when yaws runs within another larger app.

copy_error_log = true


# Logs are wrap logs
# Wrap size zero means the YAWS doesn't rotate them, logrotate does.

log_wrap_size = 0


# Possibly resolve all hostnames in logfiles so webalizer
# can produce the nice geography piechart

log_resolve_hostname = false


# Fail completely or not if yaws fails to bind a listen socket.

fail_on_bind_err = true


# If HTTP auth is used, it is possible to have a specific
# auth log. As of release 1.90 the global auth_log is
# deprecated and ignored. Now, this variable must be set in
# server part

#auth_log = true


# When we're running multiple yaws systems on the same
# host, we need to give each yaws system an individual
# name. Yaws will write a number of runtime files under
# ${HOME}/.yaws/yaws/${id}
# The default value is "default"
# If we're not planning to run multiple webservers on the
# same host it's much better to leave this value unset since
# then all the ctl function (--stop et.el) work without having
# to supply the id.
#
# In Debian system init script supplies id from the command
# line, so it's not necessary to specify it here

#id = debian_yaws


# Earlier versions of Yaws picked the first virtual host
# in a list of hosts with the same IP/PORT when the Host:
# header doesn't match any name on any Host.
# This is often nice in testing environments but not
# acceptable in real-world hosting scenarios;
# think http://porn.bigcompany.com

pick_first_virthost_on_nomatch = true


# If the HTTP client session is to be kept alive, wait this many
# milliseconds for a new request before timing out the connection. Note
# that infinity is a valid value but it's not recommended.

keepalive_timeout = 30000


# Load external config files. To add virtual server, don't
# edit this config file. Instead, put additional config to
# /etc/yaws/config.d/ and it will be sourced during yaws
# reload.

subconfigdir = /etc/yaws/conf.d


# And then a set of virtual server examples
# (If you want to use privileged port, run yaws as root,
# setting YAWS_USER in /etc/default/yaws, or use port
# redirection, e.g. via iptables.)

# All virtual server examples are commented out.

# First two virthosted servers on the same IP (0.0.0.0)
# in this case, but an explicit IP can be given as well

#<server www>
#    port = 8080
#    listen = 0.0.0.0
#    docroot = /var/www/yaws
#    auth_log = true
#    appmods = <cgi-bin, yaws_appmod_cgi>
#</server>

#<server localhost>
#    port = 8080
#    listen = 0.0.0.0
#    docroot = /var/www/yaws-webdav
#    dir_listings = true
#    dav = true
#    auth_log = true
#    statistics = true
#    <auth>
#        realm = foobar
#        dir = /
#        user = foo:bar
#        user = baz:bar
#    </auth>
#</server>


# Now an SSL server

#<server www>
#    port = 8443
#    docroot = /var/www/yaws-ssl
#    listen = 0.0.0.0
#    dir_listings = true
#    auth_log = true
#    <ssl>  
#        keyfile = /etc/yaws/yaws-key.pem
#        certfile = /etc/yaws/yaws-cert.pem
#        depth = 0
#    </ssl>
#</server>
