You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中返回500错误码并显示自定义错误页面?

Nginx实现自定义500错误页面并返回500状态码

是否可行

完全可行。Nginx的rewrite指令可配合状态码返回逻辑,实现重定向到自定义页面的同时,返回指定的500 HTTP状态码。

具体实现方法

以下是两种常用的落地方式:

方式一:特定路径触发重写+状态码返回

如果需要在匹配特定URI或触发条件时,返回自定义500页面并带500状态码,可配置:

location /trigger-error {
    # 重写请求URI到自定义错误页面路径,break终止当前location后续指令
    rewrite ^ /custom-500.html break;
    # 强制返回500状态码
    return 500;
}
  • 说明:执行后Nginx会返回/custom-500.html的页面内容,同时响应头的状态码为500。

方式二:全局捕获500错误并返回自定义页面

如果要捕获Nginx内部产生的500错误,同时返回自定义页面并保持500状态码,配置如下:

# 在server块或全局配置中定义错误页映射
error_page 500 /custom-500.html;

# 单独处理自定义错误页的请求,确保返回500状态码
location = /custom-500.html {
    root /usr/share/nginx/html; # 替换为你的静态文件根目录
    return 500;
}
  • 说明:默认情况下,Nginx返回自定义错误页时会返回200状态码,通过return 500可强制保持500的错误状态,同时输出自定义页面内容。

注意事项

  • 确保custom-500.html文件存在于配置的root目录下,否则Nginx会 fallback到默认错误页。
  • 使用rewrite的last标记时,需注意location匹配顺序,避免出现循环重定向。
  • 可结合if指令扩展触发条件,比如判断请求头、参数等,再执行重写和状态码返回操作。

内容的提问来源于stack exchange,提问作者S.P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:42:02