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

GKE集群中NGINX Ingress静态文件无法加载问题排查

问题根源

你的Ingress配置仅匹配了/vfb-pod-one/开头的请求路径,但静态文件的请求路径以/cde-760a98e0f62f1b63edd3544c6547f81ba446e8c8/开头,没有对应的Ingress路径规则,导致这些请求无法转发到后端服务,因此加载失败。NodePort能正常访问是因为请求直接打到服务,不需要经过Ingress的路径匹配逻辑。

解决方案

需要在Ingress的paths中添加匹配静态文件前缀的规则,分两种场景处理:

场景1:前缀为固定值(cde-760a98e0f62f1b63edd3544c6547f81ba446e8c8不会变化)

在rules.http.paths下新增一条路径规则:

- path: /cde-760a98e0f62f1b63edd3544c6547f81ba446e8c8(/|$)(.*)
  pathType: ImplementationSpecific
  backend:
    service:
      name: vfb-pod-one
      port:
        number: 8000

场景2:前缀为动态生成值(每次部署会生成新的cde-xxx字符串)

用正则匹配所有以cde-开头、后跟十六进制字符的路径:

- path: /cde-[a-f0-9]+(/|$)(.*)
  pathType: ImplementationSpecific
  backend:
    service:
      name: vfb-pod-one
      port:
        number: 8000
修改后的完整Ingress配置示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ms-ingress
  namespace: code-oss
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/add-headers: 'Cache-Control: max-age=31536000; public'
    nginx.ingress.kubernetes.io/enable-access-log: "true"
    nginx.ingress.kubernetes.io/enable-debug: "true"
    nginx.ingress.kubernetes.io/proxy-buffering: "on"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
    ingressClassName: nginx
    tls:
    - hosts:
        - example.com
        - www.example.com
      secretName: ms-app-tls
    rules:
    - host: example.com
      http:
        paths:
        - path: /vfb-pod-one(/|$)(.*)
          pathType: ImplementationSpecific
          backend:
            service:
              name: vfb-pod-one
              port:
                number: 8000
        # 新增静态文件路径匹配规则
        - path: /cde-[a-f0-9]+(/|$)(.*)
          pathType: ImplementationSpecific
          backend:
            service:
              name: vfb-pod-one
              port:
                number: 8000
注意事项
  • 保留nginx.ingress.kubernetes.io/use-regex: "true"配置,确保正则路径能被NGINX Ingress正确解析
  • rewrite-target: /$2的配置会将路径中(/|$)之后的部分转发到后端服务,和现有规则的转发逻辑一致,保证后端服务能正确处理请求路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:27:05