<!-- review: finished -->

<a id="core"></a>

# Основной модуль

Модуль предоставляет основную функциональность и директивы конфигурации,
необходимые для базовой работы сервера, а также решает важные задачи,
такие как управление рабочими процессами,
настройка событийно-ориентированных моделей
и обработка входящих соединений и запросов.
Он включает ключевые директивы для настройки основного процесса,
ведения журналов ошибок и контроля поведения сервера на низком уровне.

<a id="configuration-example-1-1-1-1"></a>

## Пример конфигурации

```nginx
user www www;
worker_processes 2;

error_log /var/log/error.log info;

events {

    use kqueue; worker_connections 2048;
}
```

<a id="directives-1"></a>

## Директивы

<a id="index-0"></a>

<a id="accept-mutex"></a>

### accept_mutex

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `accept_mutex` `on` | `off`;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | `accept_mutex off;`            |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                         |

Когда `accept_mutex` включен,
рабочие процессы будут принимать новые соединения поочередно.
Иначе уведомления о новых соединениях получают все рабочие процессы,
что может привести к неэффективному использованию системных ресурсов,
если количество новых соединений невелико.

#### NOTE
Нет необходимости включать `accept_mutex` на системах,
которые поддерживают флаг `EPOLLEXCLUSIVE`,
или при использовании директивы [reuseport](https://angie.software//angie/docs/configuration/modules/http/index.md#listen).

<a id="index-1"></a>

<a id="accept-mutex-delay"></a>

### accept_mutex_delay

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `accept_mutex_delay` время;   |
|------------------------------------------------------------------------------------------|-------------------------------|
| По умолчанию                                                                             | `accept_mutex_delay 500ms;`   |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                        |

Если [accept_mutex](#accept-mutex) включен,
эта директива указывает максимальное время,
в течение которого рабочий процесс ждет,
чтобы продолжить принимать новые соединения,
если другой рабочий процесс уже обрабатывает новые соединения.

<a id="index-2"></a>

<a id="daemon"></a>

### daemon

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `daemon` `on` | `off`;   |
|------------------------------------------------------------------------------------------|--------------------------|
| По умолчанию                                                                             | `daemon on;`             |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                     |

Определяет, будет ли Angie запускаться в режиме демона.
Используется в основном для разработки.

<a id="index-3"></a>

<a id="debug-connection"></a>

### debug_connection

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `debug_connection` адрес | CIDR | `unix`:;   |
|------------------------------------------------------------------------------------------|----------------------------------------------|
| По умолчанию                                                                             | —                                            |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                                       |

Включает отладочный лог для отдельных клиентских соединений.
Для остальных соединений используется уровень лога,
заданный директивой [error_log](#error-log).
Указывать соединения можно по IPv4- или IPv6-адресу, сети или имени хоста.
Используйте параметр `unix:`, чтобы включить отладочный лог
для соединений через UNIX-сокеты.

```nginx
events {

    debug_connection 127.0.0.1;
    debug_connection localhost;
    debug_connection 192.0.2.0/24;
    debug_connection ::1;
    debug_connection 2001:0db8::/32;
    debug_connection unix:;
    #  ...
}
```

#### NOTE
Чтобы эта директива работала,
в сборке Angie должен быть включен [отладочный лог](https://angie.software//angie/docs/troubleshooting.md#debug-logging).

<a id="index-4"></a>

<a id="debug-points"></a>

### debug_points

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `debug_points` `abort` | `stop`;   |
|------------------------------------------------------------------------------------------|------------------------------------|
| По умолчанию                                                                             | —                                  |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                               |

Эта директива используется для отладки.

В случае обнаружения внутренней ошибки,
например, утечки сокетов в момент перезапуска рабочих процессов,
включение `debug_points` либо создаст файл дампа памяти (`abort`),
либо остановит процесс (`stop`) для анализа с помощью отладчика.

<a id="index-5"></a>

<a id="env"></a>

### env

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `env` переменная [=значение];   |
|------------------------------------------------------------------------------------------|---------------------------------|
| По умолчанию                                                                             | `env TZ;`                       |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                            |

По умолчанию Angie удаляет все переменные окружения,
унаследованные от родительского процесса,
кроме переменной `TZ`.
Эта директива позволяет сохранить часть унаследованных переменных,
поменять их значения или создать новые переменные окружения.

Эти переменные затем:

- наследуются во время
  [обновления исполняемого файла на лету](https://angie.software//angie/docs/configuration/runtime.md#service-upgrade);
- используются модулем [Perl](https://angie.software//angie/docs/configuration/modules/http/http_perl.md#http-perl);
- доступны рабочими процессами.

Обратите внимание, что управление системными библиотеками таким образом
может быть не всегда эффективным, поскольку библиотеки часто проверяют переменные
только во время инициализации, которая происходит до срабатывания этой директивы.
Переменная `TZ` всегда наследуется
и доступна модулю [Perl](https://angie.software//angie/docs/configuration/modules/http/http_perl.md#http-perl),
если не задано явно иное поведение.

Пример:

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

#### NOTE
Переменная окружения `ANGIE` используется внутри Angie
и не должна задаваться напрямую пользователем.

<a id="index-6"></a>

<a id="error-log"></a>

### error_log

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `error_log` файл [уровень] [[`filter=`тип:значение] ...];                                                                                                           |
|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| По умолчанию                                                                             | `error_log logs/error.log error;`<br/>(путь зависит от [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#paths) `--error-log-path`) |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main, http, mail, stream, server, location                                                                                                                          |

Настраивает логирование,
позволяя указывать несколько логов на одном уровне конфигурации.
Если файл лога не указан явно на уровне конфигурации `main`,
будет использоваться файл по умолчанию.

Первый параметр указывает файл для хранения лога.
Специальное значение `stderr` задает стандартный поток ошибок.
Для настройки логирования в [syslog](https://angie.software//angie/docs/configuration/processing.md#syslog-logging)
используйте префикс `"syslog:"`.
Для логирования в [циклический буфер памяти](https://angie.software//angie/docs/troubleshooting.md#cyclic-memory-buffer)
используйте префикс `"memory:"`, за которым следует размер буфера;
обычно он используется для отладки.

Второй параметр задает уровень логирования одним из следующих значений:
`debug`, `info`, `notice`, `warn`, `error`,
`crit`, `alert` или `emerg`.
Уровни перечислены в порядке возрастания серьезности.
При задании уровня будут логироваться сообщения равного и более высокого уровня:

| Настройка   | Уровни записи                                                            |
|-------------|--------------------------------------------------------------------------|
| `debug`     | `debug`, `info`, `notice`, `warn`, `error`,<br/>`crit`, `alert`, `emerg` |
| `info`      | `info`, `notice`, `warn`, `error`,<br/>`crit`, `alert`, `emerg`          |
| `notice`    | `notice`, `warn`, `error`,<br/>`crit`, `alert`, `emerg`                  |
| `warn`      | `warn`, `error`, `crit`, `alert`, `emerg`                                |
| `error`     | `error`, `crit`, `alert`, `emerg`                                        |
| `crit`      | `crit`, `alert`, `emerg`                                                 |
| `alert`     | `alert`, `emerg`                                                         |
| `emerg`     | `emerg`                                                                  |

Если этот параметр не задан,
по умолчанию используется уровень логирования `error`.

Необязательные параметры `filter=` ограничивают набор записываемых сообщений.
Поддерживаются следующие фильтры:

- `filter=file:`префикс — совпадение по префиксу имени файла
  (например, `ngx_http_access_module.c`);
- `filter=event:`префикс — совпадение по префиксу идентификатора события
  (например, `http.upstream.peer`);
- `filter=tag:`тег — совпадение по тегу записи.

Для `filter=file:` и `filter=event:` используется сравнение по префиксу;
достаточно любого совпадения. Для `filter=tag:` должны совпасть все заданные теги.
Теги добавляются модулями автоматически (например,
`http`, `stream`, `mail`, `upstream`,
`peer`, `subrequest`) и директивой
[error_log_user_tag](https://angie.software//angie/docs/configuration/modules/http/index.md#error-log-user-tag).

#### NOTE
Чтобы работал уровень логирования `debug`,
в сборке Angie должен быть включен [отладочный лог](https://angie.software//angie/docs/troubleshooting.md#debug-logging).

Каждая запись в журнале ошибок имеет следующий формат:

```text
временная_метка [уровень] PID#TID: *id_запроса сообщение
```

Где:

- `временная_метка` — дата и время события;
- `уровень` — уровень логирования события;
- `PID#TID` — идентификаторы процесса и потока;
- `*id_запроса` — уникальный идентификатор запроса (если применимо);
- `сообщение` — текст сообщения об ошибке или событии.

<a id="index-7"></a>

<a id="events"></a>

### events

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `events` { ... };   |
|------------------------------------------------------------------------------------------|---------------------|
| По умолчанию                                                                             | —                   |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                |

Предоставляет контекст конфигурационного файла для директив,
влияющих на обработку соединений.

<a id="index-8"></a>

<a id="include"></a>

### include

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `include` файл | маска;   |
|------------------------------------------------------------------------------------------|---------------------------|
| По умолчанию                                                                             | —                         |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | любой                     |

Включает в конфигурацию другой файл или файлы,
подходящие под заданную маску.
Включаемые файлы должны содержать синтаксически верные директивы и блоки.

Пример:

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

<a id="index-9"></a>

<a id="load-module"></a>

### load_module

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `load_module` файл;   |
|------------------------------------------------------------------------------------------|-----------------------|
| По умолчанию                                                                             | —                     |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                  |

Загружает динамический модуль из указанного файла.
Относительные пути задаются от [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#configure)
`--prefix`, уточнить который можно так:

```console
$ sudo angie -V
```

Пример:

```nginx
load_module modules/ngx_mail_module.so;
```

Если динамический модуль был собран для другой сборки Angie, загрузка
завершится ошибкой вида: "module "..." was built for "..." but you are running "Angie"".

<a id="index-10"></a>

<a id="lock-file"></a>

### lock_file

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `lock_file` файл;                                                                                                                                         |
|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| По умолчанию                                                                             | `lock_file logs/angie.lock;`<br/>(путь зависит от [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#paths) `--lock-path`) |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                                                                                                                                      |

Angie использует механизм блокировок для реализации [accept_mutex](#accept-mutex)
и сериализации доступа к разделяемой памяти.
На большинстве систем блокировки управляются с помощью атомарных операций,
что делает эту директиву ненужной.
Однако на некоторых системах используется альтернативный механизм lock file.
Эта директива устанавливает префикс для имен файлов блокировок.

<a id="index-11"></a>

<a id="master-process"></a>

### master_process

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `master_process` `on` | `off`;   |
|------------------------------------------------------------------------------------------|----------------------------------|
| По умолчанию                                                                             | `master_process on;`             |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                             |

Определяет, будут ли запускаться рабочие процессы.
Эта директива предназначена для разработчиков Angie.

<a id="index-12"></a>

<a id="multi-accept"></a>

### multi_accept

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `multi_accept` `on` | `off`;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | `multi_accept off;`            |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                         |

| `on`   | Рабочий процесс будет принимать сразу все новые соединения.          |
|--------|----------------------------------------------------------------------|
| `off`  | Рабочий процесс будет принимать только одно новое соединение за раз. |

#### NOTE
Директива игнорируется
при использовании метода обработки соединений [kqueue](https://angie.software//angie/docs/configuration/processing.md#kqueue),
так как он сам задает число новых соединений, ожидающих приема.

<a id="index-13"></a>

<a id="pcre-jit"></a>

### pcre_jit

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `pcre_jit` `on` | `off`;   |
|------------------------------------------------------------------------------------------|----------------------------|
| По умолчанию                                                                             | `pcre_jit off;`            |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                       |

Разрешает или запрещает использование JIT-компиляции (PCRE JIT)
для регулярных выражений, известных на момент парсинга конфигурации.

Использование PCRE JIT заметно ускоряет обработку регулярных выражений.

#### NOTE
Для работы JIT необходима библиотека PCRE версии 8.20 или выше,
собранная с параметром сборки `--enable-jit`.
Если Angie собирается с библиотекой PCRE (`--with-pcre=`),
поддержка JIT включается с помощью параметра `--with-pcre-jit`.

<a id="index-14"></a>

<a id="pid"></a>

### pid

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `pid` файл | `off`;                                                                                                                               |
|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| По умолчанию                                                                             | `pid logs/angie.pid;`<br/>(путь зависит от [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#paths) `--pid-path`) |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                                                                                                                              |

Указывает файл, где будет храниться идентификатор главного процесса Angie.
Файл создается атомарно, что обеспечивает корректность его содержимого.
Настройка `off` отключает создание этого файла.

#### NOTE
Если значение file изменяется при переконфигурации,
но указывает на симлинк предыдущего PID-файла,
файл не будет создан заново.

<a id="index-15"></a>

<a id="ssl-engine"></a>

### ssl_engine

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `ssl_engine` устройство;   |
|------------------------------------------------------------------------------------------|----------------------------|
| По умолчанию                                                                             | —                          |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                       |

Задает название аппаратного SSL-акселератора.

<a id="index-16"></a>

<a id="ssl-object-cache-inheritable"></a>

### ssl_object_cache_inheritable

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `ssl_object_cache_inheritable` `on` | `off`;   |
|------------------------------------------------------------------------------------------|------------------------------------------------|
| Значение по умолчанию                                                                    | `ssl_object_cache_inheritable on;`             |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                           |

Если включено, SSL-объекты (SSL-сертификаты, секретные ключи, доверенные
сертификаты CA, списки отзыва сертификатов) наследуются при перезагрузке
конфигурации.

SSL-объекты, загруженные из файлов, наследуются, если время их изменения и
индекс файла не изменились с момента предыдущей загрузки конфигурации. Секретные
ключи, указанные как `engine:name:id`, никогда не наследуются, тогда как
ключи, указанные как `data:value`, всегда наследуются.

SSL-объекты, загруженные из переменных, не могут быть унаследованы.

Пример:

```nginx
ssl_object_cache_inheritable on;

http {
    server {
        ssl_certificate     example.com.crt;
        ssl_certificate_key example.com.key;
    }
}
```

<a id="index-17"></a>

<a id="thread-pool"></a>

### thread_pool

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `thread_pool` имя `threads=`число [`max_queue=`число];   |
|------------------------------------------------------------------------------------------|----------------------------------------------------------|
| По умолчанию                                                                             | `thread_pool default threads=32 max_queue=65536;`        |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                                     |

Задает имя и параметры пула потоков,
используемого для многопоточной обработки операций чтения и отправки файлов
[без блокирования](https://angie.software//angie/docs/configuration/modules/http/index.md#aio) рабочих процессов.

Параметр `threads` задает число потоков в пуле.

Если все потоки в пуле заняты выполнением заданий, новые задания ждут в очереди.
Параметр `max_queue` ограничивает число заданий,
ожидающих своего выполнения в очереди.
По умолчанию в очереди может находиться до 65536 заданий.
Если очередь переполнена, новые задания завершаются с ошибкой.

<a id="index-18"></a>

<a id="timer-resolution"></a>

### timer_resolution

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `timer_resolution` интервал;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | —                              |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                           |

Уменьшает разрешение таймеров времени в рабочих процессах,
за счет чего уменьшается число системных вызовов `gettimeofday()`.
По умолчанию `gettimeofday()` вызывается при каждом получении событий из ядра.
При уменьшении разрешения функция вызывается только раз за указанный интервал.

Пример:

```nginx
timer_resolution 100ms;
```

Внутренняя реализация интервала зависит от используемого метода:

- Фильтр `EVFILT_TIMER`, если используется [kqueue](https://angie.software//angie/docs/configuration/processing.md#kqueue).
- Функция `timer_create()`, если используется [eventport](https://angie.software//angie/docs/configuration/processing.md#eventport).
- Функция `setitimer()`, в противном случае.

<a id="index-19"></a>

<a id="use"></a>

### use

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `use` метод;   |
|------------------------------------------------------------------------------------------|----------------|
| По умолчанию                                                                             | —              |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events         |

Задает метод, используемый для [обработки соединений](https://angie.software//angie/docs/configuration/processing.md#methods-use).
Обычно нет необходимости задавать его явно,
поскольку по умолчанию Angie выбирает наиболее эффективный метод.

<a id="index-20"></a>

<a id="user"></a>

### user

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `user` пользователь [группа];                              |
|------------------------------------------------------------------------------------------|------------------------------------------------------------|
| По умолчанию                                                                             | `user <параметр сборки --user> <параметр сборки --group>;` |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                                       |

Задает пользователя и группу для рабочих процессов
(см. также [параметры сборки](https://angie.software//angie/docs/installation/sourcebuild.md#configure)).
Если задан только пользователь,
для группы также задается указанное имя пользователя.

<a id="index-21"></a>

<a id="worker-aio-requests"></a>

### worker_aio_requests

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_aio_requests` число;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | `worker_aio_requests 32;`      |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                         |

При использовании [aio](https://angie.software//angie/docs/configuration/modules/http/index.md#aio) с методом обработки соединений [epoll](https://angie.software//angie/docs/configuration/processing.md#epoll)
задает максимум операций асинхронного ввода-вывода, ожидающих обработки,
для одного рабочего процесса.

<a id="index-22"></a>

<a id="worker-connections"></a>

### worker_connections

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_connections` число;   |
|------------------------------------------------------------------------------------------|-------------------------------|
| По умолчанию                                                                             | `worker_connections 512;`     |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | events                        |

Задает максимум соединений, которые одновременно может открыть рабочий процесс.

Обратите внимание, что это число включает все соединения,
такие как соединения с проксируемыми серверами, а не только клиентские.
Кроме того, фактическое количество одновременных соединений
не может превышать системный лимит на открытые файлы,
который можно настроить с помощью [worker_rlimit_nofile](#worker-rlimit-nofile).

<a id="index-23"></a>

<a id="worker-cpu-affinity"></a>

### worker_cpu_affinity

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_cpu_affinity` маска_CPU ...;<br/><br/>`worker_cpu_affinity` auto [маска_CPU];   |
|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| По умолчанию                                                                             | —                                                                                       |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                                                                    |

Привязывает рабочие процессы к группам процессоров.
Каждая группа процессоров задается битовой маской разрешенных процессоров.
Для каждого рабочего процесса должна быть задана отдельная группа.
По умолчанию рабочие процессы не привязаны к конкретным процессорам.

Пример:

```nginx
worker_processes    4;
worker_cpu_affinity 0001 0010 0100 1000;
```

Эта конфигурация привязывает каждый рабочий процесс к отдельному процессору.

В качестве альтернативы:

```nginx
worker_processes    2;
worker_cpu_affinity 0101 1010;
```

Это привязывает первый рабочий процесс к CPU0 и CPU2,
а второй рабочий процесс к CPU1 и CPU3.
Такая настройка подходит для гипертрединга.

Специальное значение `auto`
позволяет автоматически привязывать рабочие процессы к доступным процессорам:

```nginx
worker_processes auto;
worker_cpu_affinity auto;
```

С помощью необязательной маски можно ограничить процессоры,
доступные для автоматической привязки:

```nginx
worker_cpu_affinity auto 01010101;
```

#### NOTE
Директива доступна только на FreeBSD и Linux.

<a id="index-24"></a>

<a id="worker-priority"></a>

### worker_priority

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_priority` число;   |
|------------------------------------------------------------------------------------------|----------------------------|
| По умолчанию                                                                             | `worker_priority 0;`       |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                       |

Задает приоритет планирования рабочих процессов подобно тому,
как это делается командой **nice**:
отрицательное число означает более высокий приоритет.
Диапазон возможных значений — от -20 до 20.

Пример:

```nginx
worker_priority -10;
```

<a id="index-25"></a>

<a id="worker-processes"></a>

### worker_processes

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_processes` число | `auto`;   |
|------------------------------------------------------------------------------------------|--------------------------------------|
| По умолчанию                                                                             | `worker_processes 1;`                |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                                 |

Задает число рабочих процессов.

Оптимальное значение зависит от разных факторов, включая число ядер процессора,
количество жестких дисков и характер нагрузки.
Если вы не уверены, рекомендуется начать с числа доступных ядер процессора.
Значение `auto` пытается автоматически определить оптимальное количество.

<a id="index-26"></a>

<a id="worker-rlimit-core"></a>

### worker_rlimit_core

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_rlimit_core` размер;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | —                              |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                           |

Меняет ограничение на наибольший размер дампа памяти (`RLIMIT_CORE`)
для рабочих процессов.
Используется для увеличения ограничения без перезапуска главного процесса.

<a id="index-27"></a>

<a id="worker-rlimit-nofile"></a>

### worker_rlimit_nofile

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_rlimit_nofile` число;   |
|------------------------------------------------------------------------------------------|---------------------------------|
| По умолчанию                                                                             | —                               |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                            |

Меняет ограничение на максимальное число открытых файлов (`RLIMIT_NOFILE`)
для рабочих процессов.
Используется для увеличения ограничения без перезапуска главного процесса.

<a id="index-28"></a>

<a id="worker-shutdown-timeout"></a>

### worker_shutdown_timeout

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `worker_shutdown_timeout` время;   |
|------------------------------------------------------------------------------------------|------------------------------------|
| По умолчанию                                                                             | —                                  |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                               |

Задает таймаут в секундах для постепенного завершения рабочих процессов.
По истечении указанного времени
Angie попытается закрыть все открытые сейчас соединения,
чтобы ускорить завершение работы.

Постепенное завершение работы инициируется отправкой [сигнала QUIT](https://angie.software//angie/docs/configuration/runtime.md#control-signals) главному процессу, который приказывает рабочим процессам
прекратить принимать новые подключения, позволяя завершить уже существующие.
Рабочие процессы продолжают обрабатывать активные запросы до их завершения,
после чего корректно завершают свою работу. Если соединения остаются открытыми
дольше `worker_shutdown_timeout`, Angie принудительно закроет эти
соединения для завершения работы.
Также клиентские постоянные соединения закрываются только в случае,
если они неактивны не менее времени, заданного в [lingering_timeout](https://angie.software//angie/docs/configuration/modules/http/index.md#lingering-timeout).

<a id="index-29"></a>

<a id="working-directory"></a>

### working_directory

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `working_directory` каталог;   |
|------------------------------------------------------------------------------------------|--------------------------------|
| По умолчанию                                                                             | —                              |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | main                           |

Задает каталог, который будет текущим для рабочего процесса.
Основное применение — запись дампа памяти,
поэтому рабочий процесс должен иметь права на запись в этот каталог.
