Example Configuration

user               www  www;
worker_processes   2;

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

events {
    use    kqueue;
    worker_connections   2048;
}

...

Directives


syntax: daemon on | off
default: daemon on
context: main

Determines whether nginx should become a daemon. Mainly used during development.


syntax: env VAR[=VALUE]
default: env TZ
context: main

Allows to limit a set of environment variables, change their values, or create new environment variables, for the following cases:

The TZ variable is always inherited and made available to the http_perl module, unless configured explicitly.

Usage example:

env  MALLOC_OPTIONS;
env  PERL5LIB=/data/site/modules;
env  OPENSSL_ALLOW_PROXY_CERTS=1;


syntax: include file | mask
default: none
context: any

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

Usage example:

include  mime.types;
include  vhosts/*.conf;


syntax: master_process on | off
default: master_process on
context: main

Determines whether worker processes are started. This directive is intended for nginx developers.


syntax: pid file
default: pid nginx.pid
context: main

Defines a file which will store the process ID of the main process.


syntax: ssl_engine device
default: none
context: main

Defines the name of the hardware SSL accelerator.


syntax: user user [group]
default: user nobody nobody
context: main

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


syntax: timer_resolution interval
default: none
context: main

Reduces timer resolution in worker processes, thus reducing the number of gettimeofday() system calls made. By default, gettimeofday() is called each time on receiving a kernel event. With reduced resolution, gettimeofday() is only called once per specified interval.

Example:

timer_resolution   100ms;

An internal implementation of interval depends on the method used:


syntax: worker_rlimit_core size
default: none
context: main

Changes the limit on the largest size of a core file (RLIMIT_CORE) for worker processes. Used to increase the limit without restarting the main process.


syntax: worker_rlimit_nofile number
default: none
context: main

Changes the limit on the maximum number of open files (RLIMIT_NOFILE) for worker processes. Used to increase the limit without restarting the main process.


syntax: worker_priority number
default: worker_priority 0
context: main

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

Example:

worker_priority  -10;


syntax: worker_processes number
default: worker_processes 1
context: main

Defines the number of worker processes.


syntax: working_directory directory
default: none
context: main

Defines a current working directory for a worker process. It's primarily used for writing a core-file, in which case a working process should have write permission for the specified directory.