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

nginx-ingress访问主域名下React应用报404,子域名路径访问正常

问题根因定位及排查方案

高概率触发原因

  • 前端React应用内置的Nginx配置未绑定主域名link8.in:大部分React镜像打包时会默认在Nginx配置中指定固定server_name,若仅配置了test.link8.in,主域名请求到达Pod后会匹配到Nginx默认虚拟主机,返回404
  • 存在其他Ingress资源抢占主域名规则:集群内如果有其他Ingress配置了host: link8.in或泛域名*.link8.in规则,会优先匹配到错误的后端服务
  • 冗余的rewrite注解干扰规则匹配:当前Ingress配置的nginx.ingress.kubernetes.io/rewrite-target和use-regex注解无实际作用,错误配置可能导致主域名路径匹配失效

分步排查操作

  1. 确认404返回来源
    执行命令curl -v http://link8.in查看响应头:
    • 若Server字段为nginx/1.21.x等标准Nginx标识,说明是前端Pod返回的404,优先检查前端Nginx配置
    • 若Server字段为nginx-ingress-controller,说明是Ingress层匹配失败,优先检查Ingress规则
  2. 检查是否存在冲突Ingress
    执行kubectl get ingress -A | grep link8.in,确认只有你配置的这一个Ingress绑定了link8.in域名
  3. 验证前端Pod Nginx配置
    进入前端Pod执行cat /etc/nginx/conf.d/default.conf,检查server_name配置,建议修改为server_name _;匹配所有域名,修改后重启Pod验证
  4. 清理冗余注解测试
    删除Ingress配置中以下两个注解,重新apply配置验证:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:15:01