Nginx默认站点根目录由配置文件中server块的root指令决定,非安装路径固定:源码编译默认为/usr/local/nginx/html,apt/yum安装默认为/usr/share/nginx/html,Docker等依实际nginx.conf而定。

Nginx 二进制安装后默认的站点根目录不固定,取决于安装方式和配置,但有明确的常见路径和判断依据。
默认根目录由 root 指令决定,而非安装位置本身
Nginx 本身没有“硬编码”的根目录,它完全依赖配置文件中 server 块里的 root 指令。若未显式设置,就按配置文件里写死的路径生效。主流情况如下:
-
源码编译安装(未改配置):
默认nginx.conf中通常包含server { listen 80; server_name localhost; root html; # 相对路径,基于 nginx 安装前 --prefix 指定的根目录 index index.html index.htm; }若
--prefix=/usr/local/nginx,则root html→ 实际路径为/usr/local/nginx/html -
系统包管理器安装(如 apt/yum):
配置文件通常设为绝对路径,例如:root /usr/share/nginx/html;
这是 Ubuntu、CentOS 等发行版的通用默认值
Docker 或某些精简镜像:
可能设为/usr/share/nginx/html或/var/www/html,需以容器内实际nginx.conf为准
如何快速确认当前生效的根目录
不用猜,直接查正在运行的配置:
-
查看主配置文件中
root所在的server块:nginx -t 2>/dev/null | grep -o '/[^ ]*nginx\.conf' | head -1 | xargs grep -A 5 'server {' | grep 'root'或更稳妥地:
nginx -T 2>/dev/null | awk '/^\s*server\s*\{/,/\}/ {if (/root\s+/) print $2}' | head -1 -
如果 Nginx 正在运行,也可检查进程对应配置:
ps aux | grep nginx | grep master | awk '{print $11}' # 看启动命令是否带 -c # 若带 -c,则读取该配置;否则默认读取 prefix/conf/nginx.conf
常见路径总结(按安装方式)
-
/usr/local/nginx/html—— 源码安装 + 默认--prefix+ 未改root html -
/usr/share/nginx/html—— Debian/Ubuntu(apt)、CentOS/RHEL(yum/dnf)默认值 -
/var/www/html—— 少数定制包或手动修改后的习惯路径,非 Nginx 原生默认
只要 nginx.conf 里 root 指向的是相对路径(如 html),它就相对于 prefix 路径解析;如果是绝对路径(如 /var/www),那就完全以该路径为准。
不复杂但容易忽略


















