$realpath_root
Переменная $realpath_root возвращает каноническое имя файла корневого каталога блока location, разрешая любые символические ссылки. — 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 в сочетании с обходом каталогов, так как он разрешает пути, которые могут обходить проверки безопасности, если не настроен должным образом.