修改nginx默认首页需同时配置root(指定html文件路径)和index(定义优先返回的首页文件),二者缺一不可;root决定文件查找位置,index按顺序匹配存在文件,配合try_files可支持spa路由回退。

修改 Nginx 的默认首页,本质是两件事:**指定 HTML 文件存放位置(root)** 和 **定义访问目录时优先返回哪个文件(index)**。两者配合才能让 / 请求正确加载你想要的首页。
确认并修改 root 路径
root 决定了 Nginx 从哪里找文件。它不是固定路径,而是由配置决定的。
- 打开主配置或站点配置文件,常见位置:
/etc/nginx/nginx.conf、/etc/nginx/sites-enabled/default或/usr/local/nginx/conf/nginx.conf - 找到
server块里的location / { ... }部分 - 检查是否存在
root指令,例如:root /usr/share/nginx/html; - 若要改到自定义目录(如
/home/www/mysite),直接修改为:root /home/www/mysite; - 确保该目录存在,且 Nginx 工作用户(如
www-data或nginx)有读取权限:sudo chown -R $USER:www-data /home/www/mysitesudo chmod -R 755 /home/www/mysite
设置 index 指令指定首页文件
index 控制“访问 / 时自动找哪个文件”,必须显式配置才生效。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 在同一个
location / { }块中,添加或修改index行 - 写法示例(按查找顺序):
index index.html home.html default.htm; - Nginx 会依次检查:
/home/www/mysite/index.html→home.html→default.htm,找到第一个存在的就返回 - 如果你的首页叫
login.html,那就写:index login.html; - 注意:Linux 区分大小写,
Index.html和index.html是不同文件
验证是否生效
改完别忘了重载配置,并确认行为符合预期。
- 检查语法:
sudo nginx -t - 重载服务:
sudo systemctl reload nginx(或sudo nginx -s reload) - 用 curl 测试:
curl -I http://localhost/,看响应头中的状态码和Content-Type - 临时在目标目录放多个测试页(如
index.html、home.html),删掉一个观察是否切换到下一个 - 如果返回 403,重点查目录权限;返回 404,说明文件名拼错或不在 root 指向的路径下
常见组合技巧
单靠 index 不够灵活?可搭配 try_files 实现更健壮的逻辑。
- 适合 Vue/React 等 SPA 应用:
location / {<br> index index.html;<br> try_files $uri $uri/ /index.html;<br>} - 这样既支持直接访问首页,又能在前端路由跳转后找不到静态资源时回退到
index.html,由 JS 路由接管 - 注意:此时
index index.html;仍需保留,因为$uri/触发目录匹配时依赖它
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










