<?xml version="1.0"?>

<!DOCTYPE module SYSTEM "../dtd/module.dtd">

<module name="Core Module" id="core_module">

<section name="Example Configuration" id="example">

<para>
<example>
user www www;
worker_processes 2;

error_log /var/log/nginx-error.log info;

events {
    use kqueue;
    worker_connections 2048;
}

...
</example>
</para>

</section>


<section name="Directives" id="directives">

<directive name="daemon">
<syntax>daemon <value>on</value> | <value>off</value></syntax>
<default>daemon on</default>
<context>main</context>

<para>
Determines whether nginx should become a daemon.
Mainly used during development.
</para>

</directive>


<directive name="env">
<syntax>env <argument>VAR</argument>[=<argument>VALUE</argument>]</syntax>
<default>env TZ</default>
<context>main</context>

<para>
Allows to limit a set of environment variables, change their values,
or create new environment variables, for the following cases:
<list type="bullet">

<listitem>
variable inheritance during a
<link doc="control.xml" id="upgrade">live upgrade</link>
of an executable file;
</listitem>

<listitem>
use of variables by the
<link doc="http/ngx_http_perl_module.xml">http_perl</link>
module;
</listitem>

<listitem>
use of variables by worker processes.
Please bear in mind that controlling system libraries in this way
is not always possible as it is not uncommon for libraries to check
variables only during initialization, well before they can be set
using this directive.
An exception from this is an above mentioned
<link doc="control.xml" id="upgrade">live upgrade</link>
of an executable file.
</listitem>

</list>
</para>

<para>
The TZ variable is always inherited and made available to the
<link doc="http/ngx_http_perl_module.xml">http_perl</link>
module, unless configured explicitly.
</para>

<para>
Usage example:
<example>
env MALLOC_OPTIONS;
env PERL5LIB=/data/site/modules;
env OPENSSL_ALLOW_PROXY_CERTS=1;
</example>
</para>

</directive>

<directive name="include">
<syntax>include <argument>file</argument> | <argument>mask</argument></syntax>
<default/>
<context/>

<para>
Includes another <argument>file</argument>, or files matching the
specified <argument>mask</argument>, into configuration.
Included files should consist of
syntactically correct directives and blocks.
</para>

<para>
Usage example:
<example>
include mime.types;
include vhosts/*.conf;
</example>
</para>

</directive>


<directive name="master_process">
<syntax>master_process <value>on</value> | <value>off</value></syntax>
<default>master_process on</default>
<context>main</context>

<para>
Determines whether worker processes are started.
This directive is intended for nginx developers.
</para>

</directive>


<directive name="pid">
<syntax>pid <argument>file</argument></syntax>
<default>pid nginx.pid</default>
<context>main</context>

<para>
Defines a <argument>file</argument> which will store the process ID of the main process.
</para>

</directive>


<directive name="ssl_engine">
<syntax>ssl_engine <argument>device</argument></syntax>
<default/>
<context>main</context>

<para>
Defines the name of the hardware SSL accelerator.
</para>

</directive>


<directive name="user">
<syntax>user <argument>user</argument> [<argument>group</argument>]</syntax>
<default>user nobody nobody</default>
<context>main</context>

<para>
Defines <argument>user</argument> and <argument>group</argument>
credentials used by worker processes.
If <argument>group</argument> is omitted, a group whose name equals
that of <argument>user</argument> is used.
</para>

</directive>


<directive name="timer_resolution">
<syntax>timer_resolution <argument>interval</argument></syntax>
<default/>
<context>main</context>

<para>
Reduces timer resolution in worker processes, thus reducing the
number of <c-func>gettimeofday</c-func> system calls made.
By default, <c-func>gettimeofday</c-func> is called each time
on receiving a kernel event.
With reduced resolution, <c-func>gettimeofday</c-func> is only
called once per specified <argument>interval</argument>.
</para>

<para>
Example:
<example>
timer_resolution 100ms;
</example>
</para>

<para>
An internal implementation of interval depends on the method used:
<list type="bullet">

<listitem>
an <c-def>EVFILT_TIMER</c-def> filter if <value>kqueue</value> is used;
</listitem>

<listitem>
<c-func>timer_create</c-func> if <value>eventport</value> is used;
</listitem>

<listitem>
<c-func>setitimer</c-func> otherwise.
</listitem>

</list>
</para>

</directive>


<directive name="worker_rlimit_core">
<syntax>worker_rlimit_core <argument>size</argument></syntax>
<default/>
<context>main</context>

<para>
Changes the limit on the largest size of a core file
(<c-def>RLIMIT_CORE</c-def>) for worker processes.
Used to increase the limit without restarting the main process.
</para>

</directive>


<directive name="worker_rlimit_nofile">
<syntax>worker_rlimit_nofile <argument>number</argument></syntax>
<default/>
<context>main</context>

<para>
Changes the limit on the maximum number of open files
(<c-def>RLIMIT_NOFILE</c-def>) for worker processes.
Used to increase the limit without restarting the main process.
</para>

</directive>


<directive name="worker_priority">
<syntax>worker_priority <argument>number</argument></syntax>
<default>worker_priority 0</default>
<context>main</context>

<para>
Defines a scheduling priority for worker processes like is
done by the <command>nice</command>: a negative
<argument>number</argument>
means higher priority.
Allowed range normally varies from -20 to 20.
</para>

<para>
Example:
<example>
worker_priority -10;
</example>
</para>

</directive>


<directive name="worker_processes">
<syntax>worker_processes <argument>number</argument></syntax>
<default>worker_processes 1</default>
<context>main</context>

<para>
Defines the number of worker processes.
</para>

</directive>


<directive name="working_directory">
<syntax>working_directory <argument>directory</argument></syntax>
<default/>
<context>main</context>

<para>
Defines a current working directory for a worker process.
It is primarily used when writing a core-file, in which case
a working process should have write permission for the
specified directory.
</para>

</directive>

</section>

</module>
