需配置 error_page 指令并确保错误页文件存在、路径正确、MIME 类型准确:在 server 或 http 块中添加 error_page 404 /404.html; 和 error_page 500 502 503 504 /50x.html;,配合 location = /404.html { } 等块,页面置于 root 目录下且 Nginx 有读取权限,显式设置 types 或启用 mime.types,避免使用绝对路径、try_files 干扰,并通过 nginx -t 和 nginx -s reload 生效。
要在 Nginx 文件服务器中自定义 404 和 500 错误页面,核心是配置
指令,并确保错误页面文件存在、路径可访问、MIME 类型正确。
配置 error_page 指令指向本地静态页
在 server 块或 http 块中添加:
用
将 404 请求重定向到根目录下的
用
统一处理常见服务端错误(推荐共用一个页面)
必须配合
或类似块,确保该路径能被正常返回(避免再次触发错误)
确保错误页面可被 Nginx 正确读取和响应
错误页面需满足三个条件:
文件放在
指定的目录下(例如
),且 Nginx 工作进程有读取权限
页面路径是相对于
的 URI 路径,不是文件系统绝对路径
建议在对应 location 块中显式设置
或确认
已启用,防止返回时 Content-Type 错误
避免常见陷阱
几个容易出错的地方:
不要用
—— 这是文件系统路径,Nginx 会当作 URI 处理并报错
如果使用了
(如静态文件服务常用),它可能拦截请求并跳过 error_page,需确认 404 真由 Nginx 触发而非后端或 try_files 自身返回
修改配置后务必运行
测试语法,并
生效,直接重启可能不必要
自定义错误页本身不依赖后端,纯静态即可,但要注意路径、权限和 MIME 类型这三个关键点。不复杂但容易忽略细节。
error_pageerror_page 404 /404.html;404.htmlerror_page 500 502 503 504 /50x.html;location = /404.html { }root/var/www/html/404.htmlroottypes { text/html html; }include mime.types;error_page 404 /usr/share/nginx/html/404.html;try_filesnginx -tnginx -s reload