Переменные NGINX

195 — Поисковый справочник переменных по core HTTP, stream и сторонним модулям — с примерами и нюансами.

NGINX Core (HTTP)124

$arg_* Переменная $arg_ возвращает значение конкретного параметра запроса из URI. $args Переменная $args содержит аргументы строки запроса без символа '?'. $binary_remote_addr Переменная $binary_remote_addr содержит двоичное представление IP-адреса клиента. Кэшируется $body_bytes_sent Переменная $body_bytes_sent в NGINX содержит количество байт, отправленных клиенту в теле ответа, за исключением заголовков ответа. Кэшируется $bytes_sent Переменная $bytes_sent содержит общее количество байт, отправленных клиенту в ответ на запрос. Кэшируется $connection Переменная $connection возвращает номер дескриптора соединения для текущего запроса в NGINX. Кэшируется $connection_requests Переменная $connection_requests возвращает количество запросов, полученных на текущем соединении. Кэшируется $connection_time Переменная $connection_time возвращает время, затраченное на установление соединения с клиентом, в секундах. $content_length Переменная $content_length содержит значение HTTP‑заголовка 'Content-Length', отправленного клиентом, представляющее размер тела запроса в байтах. Кэшируется $content_type Переменная $content_type в NGINX содержит значение заголовка Content-Type HTTP-ответа. Кэшируется $cookie_* Префикс переменных $cookie_ используется для доступа к значениям HTTP cookie, отправляемым клиентом. Кэшируется $document_root Переменная $document_root возвращает корневой каталог текущего server- или location-блока, как определено в конфигурации NGINX. $document_uri Переменная $document_uri содержит URI запроса без строки запроса и с декодированными процентно-кодированными символами. $fastcgi_path_info Переменная $fastcgi_path_info содержит дополнительную информацию о пути, которая следует за именем скрипта в запросе FastCGI. $fastcgi_script_name Переменная $fastcgi_script_name содержит имя скрипта, обрабатываемого FastCGI-сервером. $grpc_internal_trailers Переменная $grpc_internal_trailers содержит внутренние поля трейлеров ответа gRPC. $gzip_ratio Переменная $gzip_ratio содержит коэффициент сжатия, достигнутый gzip, когда NGINX обслуживает сжатый ответ. Кэшируется $host Переменная $host в NGINX содержит имя хоста из HTTP-заголовка запроса или имя сервера, определённое в конфигурации. Кэшируется $hostname Переменная $hostname возвращает имя хоста сервера, указанное в серверном блоке. Кэшируется $http_* Переменная $http_ содержит значение конкретного HTTP-заголовка из запроса клиента, с префиксом 'http_'. Кэшируется $http_cookie Переменная $http_cookie захватывает значение заголовка Cookie из входящего HTTP-запроса. Кэшируется $http_host Переменная `$http_host` содержит значение заголовка Host, отправленного клиентом в HTTP-запросе. Кэшируется $http_referer Переменная $http_referer содержит значение HTTP‑заголовка Referer из запроса клиента. Кэшируется $http_user_agent Переменная $http_user_agent содержит значение HTTP-заголовка запроса User-Agent, отправленного клиентом. Кэшируется $http_via Переменная $http_via получает значение заголовка 'via', отправленного вышестоящими прокси в HTTP-запросах. Кэшируется $http_x_forwarded_for Переменная $http_x_forwarded_for содержит значение заголовка X-Forwarded-For из запроса клиента, которое указывает исходный IP-адрес клиента, выполняющего запрос. Кэшируется $https Переменная $https указывает, был ли запрос выполнен по HTTPS (защищённо) или нет. Кэшируется $invalid_referer Переменная $invalid_referer устанавливается в 1, если referer запроса не разрешён на основании заданных правил доступа. Кэшируется $is_args Переменная $is_args указывает, содержит ли текущий запрос аргументы в строке запроса. $is_request_port Переменная $is_request_port указывает, был ли запрос выполнен на альтернативном порту, а не на порту по умолчанию для протокола. Кэшируется $limit_conn_status $limit_conn_status возвращает статус ограничения подключений для каждого клиента в NGINX. $limit_rate $limit_rate управляет максимальной скоростью передачи для ответа, фактически ограничивая использование пропускной способности для каждого соединения. $limit_req_status Переменная $limit_req_status выводит код состояния механизма ограничения запросов в NGINX. $msec Переменная $msec содержит текущее время в миллисекундах, прошедшее с начала эпохи Unix. $nginx_version Переменная $nginx_version содержит номер версии текущего запущенного экземпляра NGINX. Кэшируется $pid Переменная $pid возвращает идентификатор (PID) рабочего процесса NGINX, обрабатывающего текущий запрос. Кэшируется $pipe Переменная $pipe указывает, обрабатывается ли запрос в режиме пайплайнинга. Кэшируется $proxy_add_via Переменная $proxy_add_via используется для добавления заголовка 'Via' к HTTP-запросам, проксируемым через NGINX. Кэшируется $proxy_add_x_forwarded_for Переменная $proxy_add_x_forwarded_for добавляет IP-адрес клиента в заголовок X-Forwarded-For при проксировании. Кэшируется $proxy_host Переменная $proxy_host содержит имя хоста upstream-сервера, на который осуществляется проксирование. $proxy_internal_body_length $proxy_internal_body_length возвращает длину тела запроса, который был внутренне получен от проксируемого сервера. $proxy_internal_chunked $proxy_internal_chunked указывает, должны ли внутренние ответы отправляться с использованием chunked transfer encoding. $proxy_internal_connection $proxy_internal_connection указывает, используется ли соединение с проксируемым сервером во внутренней или внешней сети. $proxy_internal_host $proxy_internal_host возвращает имя хоста внутреннего прокси для запроса. $proxy_port Переменная $proxy_port возвращает номер порта проксируемого сервера. $proxy_protocol_addr $proxy_protocol_addr возвращает адрес клиента из PROXY protocol, если он включён. Кэшируется $proxy_protocol_port Переменная $proxy_protocol_port возвращает номер порта, с которого принимается проксированный запрос при использовании PROXY protocol. Кэшируется $proxy_protocol_server_addr $proxy_protocol_server_addr возвращает IP-адрес клиента, как он передан proxy protocol при его включении в NGINX. Кэшируется $proxy_protocol_server_port Переменная $proxy_protocol_server_port возвращает порт сервера, указанный в PROXY protocol. Кэшируется $proxy_protocol_tlv_* Переменные $proxy_protocol_tlv_ предоставляют доступ к информации, содержащейся в формате Proxy Protocol TLV (Type-Length-Value). Кэшируется $query_string Переменная $query_string содержит часть URI запроса клиента, относящуюся к строке запроса, без ведущего '?'. $realip_remote_addr Переменная $realip_remote_addr содержит исходный IP-адрес клиента, когда сервер NGINX используется за прокси или балансировщиком нагрузки. Кэшируется $realip_remote_port Переменная $realip_remote_port содержит номер порта клиента, совершившего запрос, как он получен NGINX от upstream-сервера. Кэшируется $realpath_root Переменная $realpath_root возвращает каноническое имя файла корневого каталога блока location, разрешая любые символические ссылки. $remote_addr Переменная $remote_addr содержит IP-адрес клиента, который делает запрос к серверу NGINX. Кэшируется $remote_port Переменная $remote_port в NGINX содержит номер порта клиента, выполняющего запрос; используется для контроля доступа и логирования. Кэшируется $remote_user Переменная $remote_user содержит имя пользователя, предоставленное клиентом во время базовой аутентификации HTTP. Кэшируется $request Переменная $request содержит полную строку запроса, полученную от клиента, включая HTTP-метод, URI и версию протокола HTTP. Кэшируется $request_body Переменная $request_body содержит необработанное тело запроса клиента. Кэшируется $request_body_file Переменная $request_body_file содержит путь к временному файлу, в котором хранится тело запроса, когда оно слишком велико, чтобы поместиться в память. Кэшируется $request_completion Переменная $request_completion возвращает статус обработки запроса, указывая, был ли запрос успешно завершён или нет. Кэшируется $request_filename Переменная $request_filename содержит полный путь к файлу, запрошенному клиентом. $request_id Переменная $request_id содержит уникальный идентификатор для каждого запроса, обрабатываемого NGINX. Кэшируется $request_length Переменная $request_length возвращает общий размер тела запроса клиента в байтах. $request_method Переменная $request_method в NGINX содержит метод HTTP, используемый для текущего запроса. $request_port Переменная $request_port содержит номер порта, который клиент использует для отправки запроса на сервер. Кэшируется $request_time $request_time содержит общее время, затраченное на обработку запроса, в секундах с точностью до миллисекунд. $request_uri Переменная $request_uri содержит исходный URI запроса, отправленный клиентом, включая строку запроса, если она присутствует. Кэшируется $scheme Переменная $scheme в NGINX возвращает протокол текущего запроса (HTTP или HTTPS). Кэшируется $secure_link Переменная $secure_link используется для проверки защищённой ссылки на ресурс на основе хэшированного токена. Кэшируется $secure_link_expires $secure_link_expires возвращает отметку времени истечения срока действия защищённой ссылки в NGINX. Кэшируется $sent_http_* Префиксная переменная $sent_http_ возвращает заголовки HTTP-ответа, отправленные клиенту. Кэшируется $sent_http_cache_control $sent_http_cache_control содержит значение заголовка 'Cache-Control', отправленного в HTTP-ответе. Кэшируется $sent_http_connection Переменная $sent_http_connection содержит значение заголовка 'Connection', отправляемого клиенту в HTTP-ответе. Кэшируется $sent_http_content_length Переменная $sent_http_content_length возвращает значение заголовка Content-Length, отправленного в HTTP-ответе. Кэшируется $sent_http_content_type Переменная $sent_http_content_type содержит заголовок Content-Type, отправляемый в HTTP-ответе от NGINX. Кэшируется $sent_http_keep_alive Переменная $sent_http_keep_alive в NGINX содержит значение заголовка 'Keep-Alive', отправленного клиенту в ответе. Кэшируется $sent_http_last_modified Переменная $sent_http_last_modified содержит заголовок Last-Modified, возвращаемый сервером в ответе клиенту. Кэшируется $sent_http_link Переменная $sent_http_link содержит значение заголовка ответа HTTP Link, отправляемого NGINX. Кэшируется $sent_http_location Переменная $sent_http_location содержит HTTP-заголовок Location, отправляемый в ответе при внутренней переадресации. Кэшируется $sent_http_transfer_encoding $sent_http_transfer_encoding содержит значение заголовка 'Transfer-Encoding', отправляемого клиенту. Кэшируется $sent_trailer_* Переменная $sent_trailer_ является префиксной переменной, используемой для получения трейлеров, отправляемых с HTTP-ответами в NGINX. Кэшируется $server_addr Переменная $server_addr возвращает IP-адрес сервера, как указано в конфигурации NGINX. Кэшируется $server_name Переменная $server_name представляет имя виртуального хоста, обслуживающего запрос. Кэшируется $server_port Переменная $server_port возвращает номер порта, на котором был получен текущий запрос. Кэшируется $server_protocol Переменная $server_protocol содержит протокол, используемый для текущего запроса, обычно HTTP или HTTPS. Кэшируется $ssl_alpn_protocol Переменная $ssl_alpn_protocol содержит протокол согласования прикладного уровня (ALPN), выбранный во время TLS-рукопожатия. Кэшируется $ssl_cipher Переменная $ssl_cipher содержит имя шифра, используемого для SSL/TLS соединений. Кэшируется $ssl_ciphers Переменная $ssl_ciphers содержит список шифров SSL/TLS, используемых для текущего соединения. Кэшируется $ssl_client_cert Переменная $ssl_client_cert содержит SSL-сертификат клиента в виде PEM-кодированной строки, когда проверка SSL-клиента включена. Кэшируется $ssl_client_escaped_cert Переменная $ssl_client_escaped_cert содержит клиентский сертификат в формате PEM-encoded и URL-escaped, отправленный клиентом во время SSL-рукопожатия. Кэшируется $ssl_client_fingerprint Переменная $ssl_client_fingerprint представляет отпечаток SSL-сертификата клиента. Кэшируется $ssl_client_i_dn Переменная $ssl_client_i_dn содержит Identity Distinguished Name (DN) клиента во время SSL/TLS-сессий. Кэшируется $ssl_client_i_dn_legacy Переменная $ssl_client_i_dn_legacy возвращает устаревшее строковое представление имени субъекта (DN) клиентского SSL-сертификата. Кэшируется $ssl_client_raw_cert Переменная $ssl_client_raw_cert содержит необработанные байты SSL-сертификата клиента. Кэшируется $ssl_client_s_dn Переменная $ssl_client_s_dn содержит имя субъекта (DN) из SSL-сертификата клиента. Кэшируется $ssl_client_s_dn_legacy Переменная $ssl_client_s_dn_legacy содержит устаревшее различительное имя субъекта (DN) клиентского SSL-сертификата. Кэшируется $ssl_client_serial Переменная $ssl_client_serial содержит серийный номер клиентского SSL-сертификата, используемого в защищённом соединении. Кэшируется $ssl_client_sigalg Переменная $ssl_client_sigalg содержит алгоритм подписи, использованный в SSL-сертификате клиента. Кэшируется $ssl_client_v_end Переменная $ssl_client_v_end содержит время окончания SSL-соединения клиента в секундах, прошедших с начала эпохи Unix. Кэшируется $ssl_client_v_remain $ssl_client_v_remain возвращает оставшееся количество байт в цепочке сертификатов SSL-клиента после текущего сертификата. Кэшируется $ssl_client_v_start $ssl_client_v_start возвращает временную метку, когда SSL handshake завершён и соединение клиента установлено. Кэшируется $ssl_client_verify $ssl_client_verify указывает статус проверки клиентского сертификата в SSL-соединениях. Кэшируется $ssl_curve Переменная $ssl_curve возвращает название эллиптической кривой, используемой для SSL/TLS-соединений. Кэшируется $ssl_curves Переменная $ssl_curves возвращает список эллиптических кривых, согласованных в ходе SSL-рукопожатия. Кэшируется $ssl_early_data Переменная $ssl_early_data указывает, были ли получены ранние данные в SSL/TLS-соединении. $ssl_ech_outer_server_name $ssl_ech_outer_server_name возвращает внешнее имя сервера, используемое в Encrypted ClientHello для текущего SSL-соединения. Кэшируется $ssl_ech_status Переменная $ssl_ech_status указывает статус поддержки Encrypted ClientHello (ECH) для текущего SSL‑соединения. Кэшируется $ssl_protocol $ssl_protocol содержит версию протокола SSL/TLS, используемую для соединения. Кэшируется $ssl_server_name Переменная $ssl_server_name содержит имя сервера, указанное в директиве 'server_name', которое совпадает с запросом во время SSL-рукопожатия. Кэшируется $ssl_session_id Переменная $ssl_session_id содержит уникальный идентификатор текущей SSL-сессии на сервере NGINX. Кэшируется $ssl_session_reused Переменная $ssl_session_reused указывает, была ли для текущего соединения повторно использована существующая SSL-сессия. Кэшируется $ssl_sigalg Переменная $ssl_sigalg возвращает алгоритм подписи, использованный при SSL-рукопожатии защищённого соединения. Кэшируется $status Переменная $status возвращает код состояния HTTP-ответа для текущего запроса, обрабатываемого NGINX. $tcpinfo_rcv_space Переменная $tcpinfo_rcv_space возвращает объём памяти, выделенной для входного TCP-буфера. $tcpinfo_rtt Переменная $tcpinfo_rtt возвращает время круговой поездки (RTT) TCP‑соединения в микросекундах. $tcpinfo_rttvar Переменная $tcpinfo_rttvar возвращает величину вариации времени RTT для TCP-соединений в микросекундах. $tcpinfo_snd_cwnd $tcpinfo_snd_cwnd возвращает размер окна перегрузки отправки TCP в байтах. $time_iso8601 Переменная $time_iso8601 возвращает текущее время в формате ISO 8601. $time_local Переменная $time_local возвращает текущее локальное время в формате, используемом в Common Log Format. $uid_got Переменная $uid_got возвращает идентификатор пользователя, являющегося владельцем запроса; это полезно для управления доступом и ведения логов. Кэшируется $uid_reset Переменная $uid_reset указывает, следует ли сбросить UID запроса на основе правил контроля доступа. Кэшируется $uid_set Переменная $uid_set содержит идентификатор пользователя, установленный для текущего контекста запроса в NGINX. Кэшируется $uri Переменная $uri в NGINX возвращает часть URI запрошенного ресурса без информации о домене или протоколе.

NGINX Core (Stream)3

NGINX CoolKit Module2

NGINX Module for Google Mirror creation4

An NGINX module for collecting stats into Graphite1

NGINX JWT Module4

Kaltura Media Framework Common NGINX Module15

Secure token module for NGINX4

NGINX sysguard module10

Модуль анонимизации IP-адресов для NGINX3

Модуль для обработки загрузки файлов в NGINX16

Ядро модуля статистики трафика stream-сервера Nginx9