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

AWS K8s集群中Nginx Ingress访问后端服务返回404故障求助

排查步骤

  • 校验Ingress资源配置
    执行kubectl get ingress -A检查是否存在host为cafe.example.com的Ingress规则,确认规则匹配的路径包含/coffee,后端关联的Service名称、端口与咖啡应用的Service配置完全一致,同时确认ingressClassName字段与你部署的Nginx Ingress Controller的类名匹配(类名不匹配的话Controller不会加载该规则)。
  • 检查Ingress Controller加载状态
    执行kubectl logs -n nginx-ingress <你的Nginx Ingress Controller Pod名称>查看Controller日志,排查是否有找不到后端Service、端口无效等报错。也可以进入Controller Pod内部查看生成的/etc/nginx/nginx.conf文件,确认是否存在cafe.example.com对应的server块,以及/coffee路径的转发规则是否符合预期。
  • 排查路径重写配置冲突
    如果你的Ingress资源添加了nginx.ingress.kubernetes.io/rewrite-target注解,检查注解规则是否正确,错误的重写规则会导致/coffee路径被改写为后端不存在的路径,进而返回404。官方演示案例不需要配置重写注解,自行添加的可以先删除后重试。
  • 确认代理协议配置匹配
    你当前的Ingress Service开启了AWS负载均衡的代理协议支持,需要同步在Nginx Ingress Controller的启动参数中添加enable-proxy-protocol: "true"配置。如果Controller未开启代理协议,会无法正确解析请求头,匹配不到对应的Host路由规则,直接返回默认404页面。
  • 验证咖啡应用Service可用性
    执行kubectl port-forward svc/<咖啡应用Service名称> 8080:8080,本地执行curl http://localhost:8080/coffee确认可以正常返回200响应,排除Service本身无法转发请求的问题。

补充说明:你返回的404页面的Nginx版本为1.21.0,和咖啡Pod内的Nginx 1.21.3版本不一致,说明请求已经正常到达Nginx Ingress Controller,但未匹配到对应的路由规则,问题大概率出在Ingress规则配置或Controller配置层面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:54:01