GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

常见问题解决 --- 为什么nginx不转发反向代理的404自定义错误内容

问题描述

我配置了一个nginx进行转发,但是请求转发给后端后响应了404但是nginx返回的是默认的404页面,请分析。# AI 问答相关接口的映射,即 intelli-sdk 所在的服务地址
    location /agro/sndmx-api {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $host;
proxy_set_header X-Name GKLBB;
        proxy_set_header X-Real-IP $remote_addr;
    }
后端响应 GET /agro/sndmx-api HTTP/1.1
Host: localhost
X-Name: GKLBB
X-Real-IP: 127.0.0.1
Connection: close
User-Agent: curl/7.68.0
Accept: */*


HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
日期:2025 年 6 月 11 日星期三 00:51:38 GMT
连接:关闭

67
{"时间戳":"2025-06-11T00:51:38.704+00:00","状态":404,"错误":"未找到","路径":"/agro/sndmx-api"}
0

,为什么 nginx 响应 GET /agro/sndmx-api HTTP/1.1
Host: localhost:8006
User-Agent: curl/7.68.0
Accept: */*


HTTP/1.1 404 Not Found
Server: nginx
Date: Wed, 11 Jun 2025 00:51:38 GMT
Content-Type: text/html
Content-Length: 146
Connection: keep-alive

<html>
<head><title>404 未找到</title></head>
<body>
<center><h1>404 未找到</h1></center>
<hr><center>nginx</center>
</body>
</html> 请分析修改为后端服务器响应什么前端响应什么包括 404

解决方法:

解决方案

在 location 块中显式关闭错误拦截,并确保 Nginx 透传后端响应:

修改后的 Nginx 配置

 
location /agro/sndmx-api {
    proxy_pass http://127.0.0.1:8888;
    proxy_set_header Host $host;
    proxy_set_header X-Name GKLBB;
    proxy_set_header X-Real-IP $remote_addr;
    
    # 关键配置:关闭错误拦截,透传后端响应
    proxy_intercept_errors off;
    
    # 可选:确保不修改Content-Type
    proxy_pass_request_headers on;
}
 

 

posted on 2025-06-11 09:57  GKLBB  阅读(30)  评论(0)    收藏  举报