ngx_http_core_module#

ngx_http_core_module — основной модуль Nginx, отвечающий за базовую функциональность HTTP-сервера.

Он позволяет настроить:

  • конфигурацию серверов;

  • обработку запросов;

  • тайм-ауты и соединения;

  • обработку ошибок;

  • логирование;

  • оптимизацию;

  • безопасность.

Директивы#

Список директив модуля представлен в таблице ниже.

Директивы ngx_http_core_module#

Синтаксис

Значение по умолчанию

Контекст

Описание

absolute_redirect on | off;

absolute_redirect on;

http, server, location

Задает использование относительных URL при перенаправлениях, когда директива принимает значение off

aio on | off | threads[=pool];

aio off;

http, server, location

Включает или отключает асинхронный ввод-вывод (AIO) для файлов в FreeBSD и Linux

auth_delay <time>;

auth_delay 0s;

http, server, location

Устанавливает задержку для обработки неавторизованных запросов с кодом 401, чтобы предотвратить атаки по времени

chunked_transfer_encoding on | off;

chunked_transfer_encoding on;

http, server, location

Управляет использованием chunked transfer encoding в HTTP/1.1

client_body_buffer_size <size>;

client_body_buffer_size 8k| 16k;

http, server, location

Устанавливает размер буфера для чтения тела запроса клиента. Если данные превышают размер буфера, они записываются во временный файл

client_body_in_file_only on | clean | off;

client_body_in_file_only off;

http, server, location

Определяет, нужно ли сохранять тело запроса клиента в файл

client_body_in_single_buffer on | off;

client_body_in_single_buffer off;

http, server, location

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

client_body_temp_path path [<level1> [<level2> [<level3>]]];

client_body_temp_path client_body_temp;

http, server, location

Задает каталог для временных файлов с телами запросов клиентов. Поддерживает иерархию подкаталогов до трех уровней (level1, level2, level3)

client_body_timeout <time>;

client_body_timeout 60s;

http, server, location

Устанавливает тайм-аут <time> для чтения тела запроса клиента

client_header_buffer_size <size>;

client_header_buffer_size 1k;

http, server

Устанавливает размер буфера <size> для чтения заголовков запроса клиента. Для большинства запросов достаточно 1 КБ

client_header_timeout <time>;

client_header_timeout 60s;

http, server, location

Устанавливает тайм-аут <time> для чтения заголовков запроса клиента

client_max_body_size <size>;

client_max_body_size 1m;

http, server, location

Устанавливает максимальный допустимый размер <size> тела запроса клиента

connection_pool_size <size>;

connection_pool_size 256| 512;

http, server

Настраивает выделение памяти для соединений

default_type <mime-type>;

default_type text/plain;

http, server, location

Указывает MIME-тип по умолчанию для ответов, если он не задан явно

directio <size> | off;

directio off;

http, server, location

Включает использование флагов O_DIRECT, F_NOCACHE или функцию directio() для чтения файлов размером <size> больше указанного

directio_alignment <size>;

directio_alignment 512;

http, server, location

Устанавливает выравнивание для directio

disable_symlinks off;
disable_symlinks on | if_not_owner [from=<part>];

disable_symlinks off;

http, server, location

Управляет обработкой символических ссылок при открытии файлов

error_page <code> ... [=[<response>]] uri;

http, server, location, if in location

Указывает URI для отображения при возникновении ошибок. В URI можно использовать переменные

etag on | off;

etag on;

http, server, location

Включает или отключает автоматическую генерацию заголовка ETag для статических ресурсов

http { ... }

main

Определяет контекст для настройки HTTP-сервера

if_modified_since off | exact | before;

if_modified_since exact;

http, server, location

Управляет сравнением времени модификации ответа с заголовком If-Modified-Since

ignore_invalid_headers on | off;

ignore_invalid_headers on;

http, server

Задает игнорирование заголовков с недопустимыми именами, если включено

internal;

location

Указывает, что location доступен только для внутренних запросов

keepalive_disable none | <browser> ...;

keepalive_disable msie6;

http, server, location

Отключает Keep-alive для определенных браузеров

keepalive_requests <number>;

keepalive_requests 1000;

http, server, location

Устанавливает максимальное количество запросов на одно Keep-alive-соединение

keepalive_time <time>;

keepalive_time 1h;

http, server, location

Устанавливает максимальное время <time> обработки запросов в рамках Keep-alive-соединения

keepalive_timeout <timeout> [<header_timeout>];

keepalive_timeout 75s;

http, server, location

Указывает время <timeout>, в течение которого Keep-alive-соединение остается открытым со стороны сервера

large_client_header_buffers <number> <size>;

large_client_header_buffers 4 8k;

http, server

Определяет количество <number> и размер <size> буферов для чтения больших заголовков запросов клиента

limit_except <method> ... { ... }

location

Ограничивает доступные HTTP-методы <method> в пределах location

limit_rate <rate>;

limit_rate 0;

http, server, location, if in location

Устанавливает ограничение скорости <rate> передачи данных клиенту (в байтах в секунду)

limit_rate_after <size>;

limit_rate_after 0;

http, server, location, if in location

Указывает объем данных <size>, после которого начинает действовать ограничение скорости

lingering_close off | on | always;

lingering_close on;

http, server, location

Управляет процессом закрытия соединений с клиентами

lingering_time< time>;

lingering_time 30s;

http, server, location

Устанавливает максимальное время <time> для обработки дополнительных данных от клиента

lingering_timeout <time>;

lingering_timeout 5s;

http, server, location

Указывает время <time> ожидания дополнительных данных от клиента

listen <address>[:<port>] [default_server] [ssl] [http2 | quic] [proxy_protocol] [setfib=<number>] [fastopen=<number>] [backlog=<number>] [rcvbuf=<size>] [sndbuf=<size>] [accept_filter=<filter>] [deferred] [bind] [ipv6only=on | off] [reuseport] [so_keepalive=on | off | [keepidle]:[keepintvl]:[keepcnt]]; listen <port> [default_server] [ssl] [http2 | quic] [proxy_protocol] [setfib=<number>] [fastopen=<number>] [backlog=<number>] [rcvbuf=<size>] [sndbuf=<size>] [accept_filter=<filter>] [deferred] [bind] [ipv6only=on | off] [reuseport] [so_keepalive=on | off | [keepidle]:[keepintvl]:[keepcnt]]; listen unix:<path> [default_server] [ssl] [http2 | quic] [proxy_protocol] [backlog=<number>] [rcvbuf=<size>] [sndbuf=<size>] [accept_filter=<filter>] [deferred] [bind] [so_keepalive=on | off | [keepidle]:[keepintvl]:[keepcnt]];

listen *:80 | *:8000;

server

Указывает адрес <address> и порт <port> для прослушивания запросов (IP или UNIX-сокет)

location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... }

server, location

Настраивает обработку запросов в зависимости от URI

log_not_found on | off;

log_not_found on;

http, server, location

Включает или отключает логирование ошибок о ненайденных файлах в error_log

log_subrequest on | off;

log_subrequest off;

http, server, location

Включает или отключает логирование подзапросов в access_log

max_ranges <number>;

http, server, location

Ограничивает максимальное количество диапазонов в запросах с указанием диапазонов байт

merge_slashes on | off;

merge_slashes on;

http, server

Управляет объединением нескольких слешей (/) в URI в один

msie_padding on | off;

msie_padding on;

http, server, location

Добавляет комментарии к ответам для MSIE, чтобы увеличить их размер до 512 байт

msie_refresh on | off;

msie_refresh off;

http, server, location

Использует refresh вместо перенаправлений для MSIE

open_file_cache off; open_file_cache max=N [inactive=<time>];

open_file_cache off;

http, server, location

Настраивает кеш для хранения информации о файлах, включая их размеры, время модификации и ошибки поиска

open_file_cache_errors on | off;

open_file_cache_errors off;

http, server, location

Включает или отключает кеширование ошибок при поиске файлов

open_file_cache_min_uses <number>;

open_file_cache_min_uses 1;

http, server, location

Устанавливает минимальное количество обращений к файлу для сохранения его дескриптора в кеше

open_file_cache_valid <time>;

open_file_cache_valid 60s;

http, server, location

Определяет время, через которое проверяется актуальность информации в кеше

output_buffers number size;

output_buffers 2 32k;

http, server, location

Устанавливает количество и размер буферов для чтения ответов с диска

port_in_redirect on | off;

port_in_redirect on;

http, server, location

Управляет включением порта в URL при перенаправлениях

postpone_output <size>;

postpone_output 1460;

http, server, location

Откладывает отправку данных клиенту до накопления указанного объема данных

read_ahead <size>;

read_ahead 0;

http, server, location

Устанавливает размер предчтения для файлов. Используется posix_fadvise

recursive_error_pages on | off;

recursive_error_pages off;

http, server, location

Разрешает или запрещает множественные перенаправления через error_page

request_pool_size <size>;

request_pool_size 4k;

http, server

Настраивает размер пула для хранения запросов

reset_timedout_connection on | off;

reset_timedout_connection off;

http, server, location

Управляет сбросом соединений по тайм-ауту

resolver <address> ... [valid=<time>] [ipv4=on | off] [ipv6=on | off] [status_zone=<zone>];

http, server, location

Настраивает DNS-resolver для преобразования имен в адреса

resolver_timeout <time>;

resolver_timeout 30s;

http, server, location

Устанавливает тайм-аут для DNS-запросов

root <path>;

root html;

http, server, location, if in location

Указывает корневой каталог для обработки запросов

satisfy all | any;

satisfy all;

http, server, location

Определяет условия успешного выполнения запроса

send_lowat <size>;

send_lowat 0;

http, server, location

Минимизирует количество операций отправки данных на клиентских сокетах

send_timeout <time>;

send_timeout 60s;

http, server, location

Устанавливает тайм-аут между операциями записи при передаче ответа клиенту

sendfile on | off;

sendfile off;

http, server, location, if in location

Включает или выключает использование sendfile() для передачи файлов

sendfile_max_chunk <size>;

sendfile_max_chunk 2m;

http, server, location

Ограничивает объем данных, передаваемых за один вызов sendfile()

server { ... }

http

Определяет настройки виртуального сервера. Виртуальные серверы могут быть настроены как на основе IP-адресов, так и на основе имен (через поле Host). Директива listen задает адреса и порты для прослушивания, а server_name — имена серверов

server_name <name> ...;

server_name "";

server

Указывает имена виртуальных серверов, на которые должны быть направлены запросы

server_name_in_redirect on | off;

server_name_in_redirect off;

http, server, location

Определяет, будет ли основное имя сервера (из директивы server_name) использоваться в абсолютных перенаправлениях

server_names_hash_bucket_size <size>;

server_names_hash_bucket_size 32 | 64 | 128;

http

Задает размер корзины в хеш-таблицах для имен серверов. Размер зависит от кеша процессора

server_names_hash_max_size <size>;

server_names_hash_max_size 512;

http

Устанавливает максимальный размер хеш-таблиц для имен серверов

server_tokens on | off | build | <string>;

server_tokens on;

http, server, location

Управляет отображением информации о версии Nginx на страницах ошибок и в заголовке Server

subrequest_output_buffer_size <size>;

subrequest_output_buffer_size 4k | 8k;

http, server, location

Определяет размер буфера для хранения тела ответа подзапроса

tcp_nodelay on | off;

tcp_nodelay on;

http, server, location

Управляет параметром TCP_NODELAY, который уменьшает задержку при передаче данных по TCP

tcp_nopush on | off;

tcp_nopush off;

http, server, location

Управляет параметром TCP_NOPUSH, который позволяет объединять заголовки и данные в один пакет

try_files <file> ... uri; try_files <file> ... =<code>;

server, location

Проверяет наличие указанных файлов и возвращает первый найденный или перенаправляет на указанный URI

types { ... }

types {text/html html; image/gif gif; image/jpeg jpg;

http, server, location

Сопоставляет расширения файлов с MIME-типами ответов

types_hash_bucket_size

64

http, server, location

Задает размер корзины в хеш-таблицах для типов

types_hash_max_size

1024

http, server, location

Устанавливает максимальный размер хеш-таблиц для типов

underscores_in_headers

off

http, server

Разрешает или запрещает использование символов подчеркивания (_) в заголовках запросов

variables_hash_bucket_size

64

http

Определяет размер корзины в хеш-таблице для переменных

variables_hash_max_size

1024

http

Устанавливает максимальный размер хеш-таблицы для переменных

Встроенные переменные#

Модуль ngx_http_core_module предоставляет набор встроенных переменных, например:

  • $bytes_sent — количество байт, переданных клиенту;

  • $connection — уникальный номер соединения;

  • $hostname — имя хоста сервера;

  • $https — значение on, если используется SSL-соединение, иначе пустая строка;

  • $nginx_version — текущая версия Nginx.