最准最快的方法是查看配置文件中的 root 指令;需检查 nginx.conf 中 server 块的 root 行,未定义则向上查找 http 块或解析相对路径,再结合 nginx -T 查看实际生效配置,并验证路径权限与可访问性。

直接看配置文件里的 root 指令,这是最准、最快的方法。Nginx 不靠“默认路径”猜,它只认配置里写的路径。
查 nginx.conf 里的 server 块
打开主配置文件(通常是 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf),找到 server 块里的 root 行:
- 常见位置:在
location / { ... }外面的server块内 - 如果没写
root,就往上级找——server块没设就看http块;都找不到,说明用的是相对路径(比如root html;) - 相对路径
html会拼到 Nginx 安装时的--prefix路径后,可通过nginx -V 2>&1 | grep prefix查出前缀
看系统发行版常用默认路径
虽然不是硬编码,但包管理安装通常预设了惯例路径,可快速核对:
- Ubuntu/Debian:/var/www/html
- RHEL/CentOS:/usr/share/nginx/html
- macOS Homebrew:/usr/local/var/www
- 源码编译默认:/usr/local/nginx/html
检查实际生效的配置
运行中的配置可能被 include 的子配置覆盖,别只盯主文件:
- 执行
nginx -T(大写 T),输出全部已加载的配置,搜索root或location / - 重点关注
sites-enabled/下启用的虚拟主机配置(如 /etc/nginx/sites-enabled/default) - 注意
location块里是否单独写了root或alias,它会覆盖server级设置
验证路径是否存在且可访问
找到路径后,别急着放文件,先确认 Nginx 能读取:
- 用
ls -ld /path/to/root检查目录权限,确保 nginx 工作用户(如 www-data 或 nginx)有读和执行(x)权限 - SELinux 启用时(如 CentOS),需确认上下文正确:
ls -Z /path/to/root,必要时用chcon或semanage fcontext调整 - 临时放一个
test.html,访问http://your-server/test.html看是否返回内容,排除 403/404


















