nginx 该报502错误确显示404
现象
nginx转发后端服务报错,应是502,但是返回值却是404
分析
- 查看nginx配置文件,有如下一段
error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
- 报错404是因为返回 50* 之后,会转到 /50x.html 页面,而找不到50x.html报的 404错误
解决
-
方法一
将上边那一段整个注释掉 -
方法二
在根目录下添加 50x.html页面
测试
- nginx配置文件中添加或修改为如下内容:
server { listen 80; server_name web80; location / { root /usr/share/nginx/html; index index.html index.htm; add_header Cache-Control no-store; } # 写一个location,转发给不存在的页面。 location /test/ { proxy_pass http://127.0.0.1:82/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
-
测试1
访问 IP/test时,本来应该是500,却报错404 -
测试2
在根目录添加一个 50x.html文件,内容为"erro 50x",访问 IP/test ,显示 50x.html的内容
- 测试3
注释掉错误转发一段,返回500
分类:
常用服务 / Nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?