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

Docker Desktop环境Nginx Ingress访问后端Service返回404问题咨询

问题根因

你当前配置的Nginx Ingress默认会将完整的请求路径透传给后端Service,你访问http://localhost/assinaturas/hc/alive时,Ingress转发给svc-assinaturas的路径是/assinaturas/hc/alive,但你的后端服务实际只响应根路径下的/hc/alive接口,不存在/assinaturas/hc/alive这个路径,因此返回404错误。
端口转发场景下你直接访问的是/hc/alive,和后端服务的路径匹配,所以可以正常响应。

解决方案

方案1:添加Ingress重写规则(最常用)

在Ingress的annotations中添加重写注解,同时调整path规则,将匹配到的路径后缀转发到后端服务的根路径:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata: 
  name: ingress-be-assinaturas
  namespace: apps-space
  annotations:
    kubernetes.io/ingress.class: "nginx"
    # 新增重写注解,将匹配到的第二个分组内容作为转发路径
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - http:
        paths: 
        # 调整path规则,括号内为正则分组,匹配/assinaturas后的所有路径
        - path: /assinaturas(/|$)(.*)
          pathType: Prefix
          backend:
            service:              
              name: svc-assinaturas
              port:
                number: 80

修改后重新apply这个Ingress配置,再访问http://localhost/assinaturas/hc/alive就会被转发到后端服务的/hc/alive路径,正常返回响应。

方案2:修改后端服务的上下文路径

如果你的后端服务支持配置全局上下文路径,直接将服务的根路径设置为/assinaturas,无需修改Ingress配置即可正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:45:00