Основная функциональность |
Разделы
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример конфигурации
user www www; worker_processes 2; error_log /var/log/nginx-error.log info; events { use kqueue; worker_connections 2048; } ...
Директивы
Если
При включённом accept_mutex задаёт максимальное время, в течение которого рабочий процесс вновь попытается начать принимать новые соединения, если в настоящий момент новые соединения принимает другой рабочий процесс.
Определяет, будет ли nginx запускаться в режиме демона. Используется в основном для разработки.
Включает отладочный лог для отдельных клиентских соединений.
Для остальных соединений используется уровень лога, заданный директивой
error_log.
Отлаживаемые соединения задаются IPv4 или IPv6 (1.3.0, 1.2.1)
адресом или сетью.
Соединение может быть также задано при помощи имени хоста.
Отладочный лог для соединений через UNIX-сокеты (1.3.0, 1.2.1)
включается параметром “ 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:; ... }
Эта директива используется для отладки.
В случае обнаружения внутренней ошибки, например, утечки сокетов в момент
перезапуска рабочих процессов, включение
Конфигурирует запись в лог. На одном уровне может использоваться несколько логов (1.5.2).
Первый параметр задаёт файл, который будет хранить лог.
Специальное значение
Второй параметр определяет уровень лога.
Уровни лога, указанные выше, перечислены в порядке возрастания важности.
При установке определённого уровня в лог попадают все сообщения
указанного уровня и уровней большей важности.
Например, при стандартном уровне
Запись в syslog настраивается при помощи следующих параметров:
Пример конфигурации syslog: error_log syslog:server=192.168.1.1 debug; error_log syslog:server=unix:/var/log/nginx.sock; error_log syslog:server=[2001:db8::1]:12345,facility=local7,tag=nginx error;
По умолчанию nginx удаляет все переменные окружения, унаследованные от своего родительского процесса, кроме переменной TZ. Эта директива позволяет сохранить часть унаследованных переменных, поменять им значения или же создать новые переменные окружения. Эти переменные затем:
Если переменная TZ не описана явно, то она всегда наследуется и всегда доступна модулю ngx_http_perl_module. Пример использования: env MALLOC_OPTIONS; env PERL5LIB=/data/site/modules; env OPENSSL_ALLOW_PROXY_CERTS=1;
Предоставляет контекст конфигурационного файла, в котором указываются директивы, влияющие на обработку соединений.
Включает в конфигурацию другой Пример использования: include mime.types; include vhosts/*.conf;
Для реализации accept_mutex и сериализации доступа к разделяемой памяти nginx использует механизм блокировок. На большинстве систем блокировки реализованы с помощью атомарных операций, и эта директива игнорируется. Для остальных систем применяется механизм файлов блокировок. Эта директива задаёт префикс имён файлов блокировок.
Определяет, будут ли запускаться рабочие процессы. Эта директива предназначена для разработчиков nginx.
Если
Эта директива появилась в версии 1.1.12. Разрешает или запрещает использование JIT-компиляции (PCRE JIT) для регулярных выражений, известных на момент парсинга конфигурации. Использование PCRE JIT способно существенно ускорить обработку регулярных выражений.
Задаёт
Задаёт название аппаратного SSL-акселератора.
Уменьшает разрешение таймеров времени в рабочих процессах, за счёт
чего уменьшается число системных вызовов Пример использования: timer_resolution 100ms;
Внутренняя реализация интервала зависит от используемого метода:
Задаёт
Задаёт пользователя и группу, с правами которого будут работать
рабочие процессы.
Если
Эта директива появилась в версиях 1.1.4 и 1.0.7.
При использовании aio
совместно с методом обработки соединений
epoll,
задаёт максимальное
Задаёт максимальное число соединений, которые одновременно может открыть рабочий процесс. Следует иметь в виду, что в это число входят все соединения (в том числе, например, соединения с проксируемыми серверами), а не только соединения с клиентами. Стоит также учитывать, что фактическое число одновременных соединений не может превышать действующего ограничения на максимальное число открытых файлов, которое можно изменить с помощью worker_rlimit_nofile.
Привязывает рабочие процессы к группам процессоров. Каждая группа процессоров задаётся битовой маской разрешённых к использованию процессоров. Для каждого рабочего процесса должна быть задана отдельная группа. По умолчанию рабочие процессы не привязаны к конкретным процессорам. Например, worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000; привязывает каждый рабочий процесс к отдельному процессору, тогда как worker_processes 2; worker_cpu_affinity 0101 1010; привязывает первый рабочий процесс к CPU0/CPU2, а второй — к CPU1/CPU3. Второй пример пригоден для hyper-threading.
Задаёт приоритет планирования рабочих процессов подобно тому,
как это делается командой Пример использования: worker_priority -10;
Задаёт число рабочих процессов.
Оптимальное значение зависит от множества факторов, включая
(но не ограничиваясь ими) число процессорных ядер, число
жёстких дисков с данными и картину нагрузок.
Если затрудняетесь в выборе правильного значения, можно начать
с установки его равным числу процессорных ядер
(значение “
Изменяет ограничение на наибольший размер core-файла
(
Изменяет ограничение на максимальное число открытых файлов
(
На системах с поддержкой метода обработки соединений
rtsig,
изменяет ограничение на размер очереди сигналов
(
Задаёт каталог, который будет текущим для рабочего процесса. Основное применение — запись core-файла, в этом случае рабочий процесс должен иметь права на запись в этот каталог. |