首页 新闻 会员 周边 捐助

ingress-nginx 转发到后端的静态文件路径不正确

0
[待解决问题]
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    meta.helm.sh/release-namespace: default
    nginx.ingress.kubernetes.io/add-base-url: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: kettle
  namespace: default
spec:
  ingressClassName: nginx
  rules:
  - host: foo.cn
    http:
      paths:
      - backend:
          service:
            name: kettle-winter-svc
            port:
              number: 8080
        path: /pdi/(.*)
        pathType: Prefix
  tls:
  - hosts:
    - foo.cn
    secretName: foo-cn

设置为二级目录的Ingress的yaml文件如上图所示,后端的kettle也能正常打开,但是静态文件地址不正确,刚好少了一个path:pdi

请问我的ingress的yaml文件如何写呢,我尝试写server-snippet也没有实现,谢谢!

denli的主页 denli | 初学一级 | 园豆:19
提问于:2024-04-05 11:37
< >
分享
所有回答(1)
0

/pdi/(.*) 改为 (/pdi/.*) 试试

dudu | 园豆:30783 (高人七级) | 2024-04-05 11:58

您好,感谢园友,提示以下错误:

ingresses.networking.k8s.io "kettle-winter" was not valid:

* spec.rules[0].http.paths[1].path: Invalid value: "(/pdi/.*)": must be an absolute path

支持(0) 反对(0) denli | 园豆:19 (初学一级) | 2024-04-05 12:11

如果使用独立的二级域名是没有这个问题,但是如果使用二级目录就会有这样的一个问题,静态文件都提示404错误

支持(0) 反对(0) denli | 园豆:19 (初学一级) | 2024-04-05 12:15

@denli: 改为 /(pdi/.*) 试试

支持(0) 反对(0) dudu | 园豆:30783 (高人七级) | 2024-04-05 12:48

@dudu: 感谢支持,不行的呢,感觉此题无解,哈哈,毕竟这是转发到另外一个系统呀,而另外一个系统默认应该是使用的是主域名,不支持目录。

支持(0) 反对(0) denli | 园豆:19 (初学一级) | 2024-04-05 15:41

@denli:

nginx.ingress.kubernetes.io/rewrite-target: /$1

改为

nginx.ingress.kubernetes.io/rewrite-target: /pdi/$1

path: /pdi/(.*) 保持不变

支持(0) 反对(0) dudu | 园豆:30783 (高人七级) | 2024-04-05 19:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册