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

如何覆盖Nginx中proxy_pass错误回退时返回的状态码

解决方案

Nginx的error_page指令默认会保留原始错误响应的状态码,你只需要调整该指令的配置,添加=参数即可让最终响应使用 fallback 逻辑返回的真实状态码。

修改后的配置如下:

location @img_fallback {
    try_files $uri =404;
}

location ~ \.(png|jpe?g)$ {
    proxy_intercept_errors on;
    # 错误码后添加=参数,自动使用fallback逻辑的实际返回状态码
    error_page 500 502 503 504 = @img_fallback;
    proxy_pass https://someinternalservice.com:3000;
}

配置说明

  • =参数不跟具体数值时,Nginx会自动适配回退逻辑的最终状态:try_files匹配到本地文件正常返回时状态码为200,未匹配到文件返回404时最终状态也为404,不会再沿用代理返回的5xx错误码。
  • 如果你需要强制所有走fallback的请求都返回200(不推荐,会掩盖真实的资源不存在情况),也可以写成error_page 500 502 503 504 =200 @img_fallback。

内容的提问来源于stack exchange,提问作者Levy Barbosa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:07