<?xml version="1.0"?>

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

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

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

<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 id="directives" name="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 module
<link doc="http/ngx_http_perl_module.xml">ngx_http_perl_module</link>;
</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 module
<link doc="http/ngx_http_perl_module.xml">ngx_http_perl_module</link>,
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>
