$realpath_root

Переменная $realpath_root возвращает каноническое имя файла корневого каталога блока location, разрешая любые символические ссылки. — NGINX Core (HTTP)

$realpath_root NGINX Core (HTTP)

Описание

Переменная $realpath_root в NGINX предоставляет абсолютный путь к корневому каталогу текущего блока location для конкретного запроса, проходя через все символические ссылки. При обработке запроса NGINX сопоставляет запрошенный URI с настроенным document root, который определяется с помощью директив root или alias. Если указанный корневой каталог является символической ссылкой, NGINX разрешит её до фактического физического местоположения в файловой системе, обеспечивая точность пути и исключая указание на битые символические ссылки. Эта переменная особенно полезна в конфигурациях, где для обслуживания файлов используются директории, связанные через символические ссылки, поскольку она гарантирует использование корректного пути при проверках безопасности или при операциях с файлами. Она устанавливается во время фазы обработки запроса, когда NGINX анализирует блок конфигурации, обрабатывающий запрос. Типичные значения для $realpath_root включают такие пути, как '/var/www/html' или '/usr/share/nginx/html' в зависимости от пользовательских настроек в соответствующих контекстах `server` или `location`.

Пример конфига

location /images/ {
    alias /var/www/data/images/;
    try_files $uri $uri/ =404;
}

location = /images/logo.png {
    internal;
    root /var/www;
    error_page 404 = @fallback;
}

# Use of $realpath_root
add_header X-Realpath-Root $realpath_root;

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

Убедитесь, что путь, указанный в директиве root или alias, действителен и существует, иначе $realpath_root может не вернуть пригодный для использования путь.

Будьте осторожны при использовании $realpath_root в сочетании с обходом каталогов, так как он разрешает пути, которые могут обходить проверки безопасности, если не настроен должным образом.