nginx中通过index指令设置默认首页,按顺序匹配root目录下存在的文件;通过error_page指令自定义错误页面,需配合精确匹配的location块和独立root路径。配置后须nginx -t验证并reload生效。

在 nginx.conf 中设置默认首页和错误页面,核心是用好 index 和 error_page 两条指令。它们可以放在 http、server 或 location 块中,作用范围逐级缩小,推荐优先写在 server 块内,更清晰可控。
设置默认首页(index 指令)
当用户访问目录(如 / 或 /blog/)时,Nginx 会按顺序尝试查找并返回第一个存在的文件:
- 在
server或location块中添加:index index.html index.htm login.html; - 注意:多个文件名用空格分隔,Nginx 从左到右匹配,找到第一个存在的就返回
- 确保对应文件真实存在于
root指定的路径下(例如root /var/www/html;,那就要有/var/www/html/index.html) - 如果只写
index login.html;,则不会回退到index.html,必须显式列出所有候选
配置自定义错误页面(error_page 指令)
让 404、500 等状态码返回你自己的 HTML 页面,而不是 Nginx 默认提示:
- 在
server块中添加:error_page 404 500 502 503 504 /custom_404.html; - 紧接着定义该路径的响应位置:
location = /custom_404.html {<br> root /usr/share/nginx/html;<br>} -
root路径是绝对路径;它和前面location的root无关,专为此错误页服务 - 确保
/usr/share/nginx/html/custom_404.html文件存在且可读(Nginx 工作进程有权限) - 如需对不同错误码指定不同页面,可重复写多条
error_page,例如:error_page 404 /404.html;<br>error_page 500 /500.html;
关键细节与常见问题
配置生效前务必检查几项:
- 修改后执行
nginx -t验证语法,无报错再nginx -s reload - 若错误页不显示,确认是否启用了
proxy_intercept_errors on;(尤其在反向代理场景下,此指令默认关闭) - 使用
location = /xxx.html时,等号表示精确匹配,避免被其他location规则覆盖 - 错误页路径建议用绝对路径
root,相对路径容易因上下文 root 变化而失效 - 页面本身不要依赖外部资源(如 JS/CSS),或确保这些资源也能被 Nginx 正确提供











