nginx中为503配置维护页需用error_page指令重定向至自定义html页面并保持状态码,配合return 503或文件判断触发,通过nginx -t和curl验证。

在 Nginx 中为 503 状态码配置维护提示页面,核心是使用 error_page 指令将 503 响应重定向到自定义的 HTML 页面,并确保该页面能被正确返回且状态码保持为 503。
准备维护页面文件
将自定义的维护页(如 /usr/share/nginx/html/maintenance.html)放入服务器指定路径。页面内容可简洁说明服务暂时不可用,例如:
网站正在维护中
预计恢复时间:XX:XX
在 server 块中配置 error_page
在对应 server 配置段内添加以下指令:
-
error_page 503 /maintenance.html;—— 将 503 响应指向本地维护页 -
location = /maintenance.html { internal; }—— 防止用户直接通过 URL 访问该页面 - 确保该 location 不被其他 rewrite 或 proxy_pass 干扰,建议放在 server 块靠前位置
主动触发 503 的常见方式
仅配置 error_page 不会自动返回 503,需配合以下任一方式启用维护模式:
- 使用
return 503;直接返回(适合临时全局维护) - 配合
if判断某个文件是否存在:if (-f /etc/nginx/maintenance.on) { return 503; } - 在 upstream 不可用时,Nginx 默认返回 503,此时 error_page 自动生效
验证配置是否生效
修改后执行 nginx -t 测试语法,再 nginx -s reload 重载。可通过以下方式验证:
- 手动触发 503(如创建 maintenance.on 文件并访问任意路径)
- 用 curl -I 查看响应头,确认 status 是
503 Service Temporarily Unavailable - 检查返回的 HTML 内容是否为你配置的 maintenance.html











