Пример конфигурации
user www www;
worker_processes 2;
error_log /var/log/nginx-error.log info;
events {
use kqueue;
worker_connections 2048;
}
...
Директивы
|
синтаксис:
|
daemon on | off;
|
|
умолчание:
|
daemon on;
|
|
контекст:
|
main
|
Определяет, будет ли nginx запускаться в режиме демона.
Используется в основном для разработки.
|
синтаксис:
|
error_log
файл
[debug |
info |
notice |
warn |
error |
crit |
alert |
emerg];
|
|
умолчание:
|
error_log logs/error.log error;
|
|
контекст:
|
main, http, server, location
|
Конфигурирует запись в лог.
Первый параметр задаёт файл, который будет хранить лог.
Второй параметр определяет уровень лога.
Уровни лога, указанные выше, перечислены в порядке возрастания их серьёзности.
При установке определённого уровня в лог попадают все сообщения
указанного и более серьёзных уровней.
Например, при стандартном уровне error в лог попадают
сообщения уровней error, crit,
alert и emerg.
Для работы уровня лога debug необходимо сконфигурировать
nginx с --with-debug.
|
синтаксис:
|
env переменная[=значение];
|
|
умолчание:
|
env TZ;
|
|
контекст:
|
main
|
Позволяет ограничить набор переменных окружения, поменять им значения
или же создать новые переменные окружения для следующих случаев:
-
наследование переменных во время
обновления исполняемого файла на лету;
-
использование переменных модулем
ngx_http_perl_module;
-
использование переменных рабочими процессами.
Однако нужно иметь в виду, что управление поведением системных библиотек
подобным образом возможно не всегда, поскольку зачастую библиотеки используют
переменные только во время инициализации, то есть ещё до того, как их
можно задать с помощью данной директивы.
Исключением из этого является вышеописанное
обновление исполняемого файла на лету.
Если переменная TZ не описана явно, то она всегда наследуется
и всегда доступна модулю
ngx_http_perl_module.
Пример использования:
env MALLOC_OPTIONS;
env PERL5LIB=/data/site/modules;
env OPENSSL_ALLOW_PROXY_CERTS=1;
|
синтаксис:
|
include файл | маска;
|
|
умолчание:
|
—
|
|
контекст:
|
любой
|
Включает в конфигурацию другой файл или файлы,
подходящие под заданную маску.
Включаемые файлы должны содержать синтаксически верные директивы и блоки.
Пример использования:
include mime.types;
include vhosts/*.conf;
|
синтаксис:
|
master_process on | off;
|
|
умолчание:
|
master_process on;
|
|
контекст:
|
main
|
Определяет, будут ли запускаться рабочие процессы.
Эта директива предназначена для разработчиков nginx.
|
синтаксис:
|
pcre_jit on | off;
|
|
умолчание:
|
pcre_jit off;
|
|
контекст:
|
main
|
Эта директива появилась в версии 1.1.12.
Разрешает или запрещает использование JIT-компиляции (PCRE JIT)
для регулярных выражений, известных на момент парсинга конфигурации.
Использование PCRE JIT способно существенно ускорить обработку
регулярных выражений.
Для работы JIT необходима библиотека PCRE версии 8.20 или выше,
собранная с параметром конфигурации --enable-jit.
При сборке библиотеки PCRE вместе с nginx (--with-pcre=),
для включения поддержки JIT необходимо использовать параметр
конфигурации --with-pcre-jit.
|
синтаксис:
|
pid файл;
|
|
умолчание:
|
pid nginx.pid;
|
|
контекст:
|
main
|
Задаёт файл, в котором будет храниться номер (PID) основного процесса.
|
синтаксис:
|
ssl_engine устройство;
|
|
умолчание:
|
—
|
|
контекст:
|
main
|
Задаёт название аппаратного SSL-акселератора.
|
синтаксис:
|
timer_resolution интервал;
|
|
умолчание:
|
—
|
|
контекст:
|
main
|
Уменьшает разрешение таймеров времени в рабочих процессах, за счёт
чего уменьшается число системных вызовов gettimeofday().
По умолчанию gettimeofday() вызывается после каждой
операции получения событий из ядра.
C уменьшенным разрешением gettimeofday() вызывается только
один раз за указанный интервал.
Пример использования:
timer_resolution 100ms;
Внутренняя реализация интервала зависит от используемого метода:
-
фильтр
EVFILT_TIMER при использовании kqueue;
-
timer_create() при использовании eventport;
-
и
setitimer() во всех остальных случаях.
|
синтаксис:
|
user пользователь [группа];
|
|
умолчание:
|
user nobody nobody;
|
|
контекст:
|
main
|
Задаёт пользователя и группу, с правами которого будут работать
рабочие процессы.
Если группа не задана, то используется группа, имя
которой совпадает с именем пользователя.
|
синтаксис:
|
worker_priority число;
|
|
умолчание:
|
worker_priority 0;
|
|
контекст:
|
main
|
Задаёт приоритет планирования рабочих процессов подобно тому,
как это делается командой nice: отрицательное
число
означает более высокий приоритет.
Диапазон возможных значений, как правило, варьируется от -20 до 20.
Пример использования:
worker_priority -10;
|
синтаксис:
|
worker_processes число;
|
|
умолчание:
|
worker_processes 1;
|
|
контекст:
|
main
|
Задаёт число рабочих процессов.
Оптимальное значение зависит от множества факторов, включая
(но не ограничиваясь ими) число процессорных ядер, число
жёстких дисков с данными и картину нагрузок.
Если затрудняетесь в выборе правильного значения, можно начать
с установки его равным числу процессорных ядер.
|
синтаксис:
|
worker_rlimit_core размер;
|
|
умолчание:
|
—
|
|
контекст:
|
main
|
Изменяет ограничение на наибольший размер core-файла
(RLIMIT_CORE) для рабочих процессов.
Используется для увеличения ограничения без перезапуска основного процесса.
|
синтаксис:
|
worker_rlimit_nofile число;
|
|
умолчание:
|
—
|
|
контекст:
|
main
|
Изменяет ограничение на максимальное число открытых файлов
(RLIMIT_NOFILE) для рабочих процессов.
Используется для увеличения ограничения без перезапуска основного процесса.
|
синтаксис:
|
working_directory каталог;
|
|
умолчание:
|
—
|
|
контекст:
|
main
|
Задаёт каталог, который будет текущим для рабочего процесса.
Основное применение — запись core-файла, в этом случае рабочий
процесс должен иметь права на запись в этот каталог.
|