$document_root
Переменная $document_root возвращает корневой каталог текущего server- или location-блока, как определено в конфигурации NGINX.
Описание
Переменная $document_root в NGINX предоставляет путь в файловой системе к корневому каталогу, из которого для данного запроса обслуживаются файлы. Этот каталог обычно задаётся в server- или location-блоке с помощью директивы root. Её значение определяется наиболее конкретной директивой root, применимой к текущему запросу. Если директива root присутствует и в server-блоке, и в location-блоке, значение более специфичного location-блока будет иметь приоритет.
Эта переменная полезна для построения путей к файлам, особенно в сочетании с другими переменными, такими как $uri или $request_filename. Когда NGINX обрабатывает входящие запросы, он разбирает конфигурацию и назначает соответствующий корневой каталог на основе совпавшей location-директивы. Если root не задан, переменная вернёт пустую строку, что может привести к ошибкам при использовании в конфигурациях, ожидающих действительный путь.
Важно отметить, что если server-блок задаёт директиву root и не существует конкретного location-блока с директивой root, все запросы, соответствующие этому серверу, будут использовать корневой каталог из server-блока. Переменная часто используется в различных директивах NGINX, включая try_files, rewrite и alias, чтобы изменить способ обработки запросов в зависимости от определённой структуры файлов.
Пример конфига
server {
listen 80;
server_name example.com;
root /var/www/example.com;
location / {
try_files $uri $uri/ =404;
}
}
location /images/ {
root /var/www/images;
}
# Example usage in a log:
access_log /var/log/nginx/access.log "[$document_root]";Если директива root не определена, $document_root останется пустым, что может привести к ошибкам 404 Not Found, если обращаться к нему напрямую.
Будьте осторожны при использовании $document_root внутри директивы try_files; это может привести к неожиданному поведению, если пути указаны неверно.
Путать директивы root и alias может привести к путанице, так как они обрабатывают пути по-разному.