root

'root' 指令指定 NGINX 在某个 location 或 server block 中所提供文件的根目录。 — NGINX HTTP Core

root
httpserverlocationif in location
语法root path;
默认值none
上下文http, server, location, if in location
模块NGINX HTTP Core
参数1

说明

'root' 指令在 NGINX 中用于设置服务器或 location 上下文从中提供文件的文件系统路径。当对某个资源(例如 HTML 文件或图像)的请求到达时,NGINX 会通过将 'root' 指令中指定的参数与请求的 URI 连接起来来构建最终的文件路径。例如,如果 'root' 指令配置为 `/var/www/html`,且用户请求 `/images/photo.jpg`,NGINX 将在 `/var/www/html/images/photo.jpg` 查找该文件。这样就可以从磁盘上的特定目录结构提供静态文件。 该指令可以放在不同的上下文中,包括 'http'、'server'、'location',甚至放在 location 上下文的 'if' 语句中。当在不同上下文中指定了多个 'root' 指令时,优先使用最具体的那个。需要注意的是,如果请求映射到一个目录而不是文件,NGINX 会在 URI 末尾追加斜杠,并在该目录中查找一个 'index' 文件(由 'index' 指令定义)。此外,'root' 指令用于静态内容,因此动态内容,例如由脚本提供或可能通过代理的请求,不会使用该指令来查找文件。

配置示例

server {
    listen 80;
    server_name example.com;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location /images/ {
        # Specific location
        root /usr/share/nginx/images;
    }
}

'root' 指令仅适用于静态文件的提供;不要将其用于 proxy_pass 或其他动态响应。

注意层级中所有生效的 'root' 指令,因为它们可能相互冲突或覆盖。

确保指定路径具有正确的权限,以便 NGINX 用户可以读取文件。