首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx入轨不适用于/以外的路径

Nginx入轨不适用于/以外的路径
EN

Stack Overflow用户
提问于 2022-10-21 08:07:16
回答 1查看 25关注 0票数 0

我正面临着一个很奇怪的问题。RKE2部署提供了Nginx作为守护进程(rke2-ingress nginx-控制器)。

它可以很好地工作在任何path指向/的输入域定义中。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sealed-secrets-sealed-secrets-web
  namespace: sealed-secrets
spec:
  ingressClassName: nginx
  rules:
  - host: host.domain.com
    http:
      paths:
      - backend:
          service:
            name: sealed-secrets-sealed-secrets-web
            port:
              number: 80
        path: /
        pathType: Prefix

但是如果路径不是"/",而是指向不同的东西(例如/密封-秘密),那么我就会得到一个错误404 (没有找到),即使重写了目标集。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sealed-secrets-sealed-secrets-web
  namespace: sealed-secrets
spec:
  ingressClassName: nginx
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  rules:
  - host: host.domain.com
    http:
      paths:
      - backend:
          service:
            name: sealed-secrets-sealed-secrets-web
            port:
              number: 80
        path: /sealed-secrets
        pathType: Prefix

我用密封的秘密来说明,但是对于任何定义的入口资源也是如此。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 09:00:36

似乎我已经错过了添加正则表达式来重写路径的需要。

代码语言:javascript
复制
    annotations:
      nginx.ingress.kubernetes.io/ssl-redirect: 'false'
      nginx.ingress.kubernetes.io/use-regex: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /$2
    # -- Ingress hosts
    hosts:
      - host: host.domain.com
        paths:
          - path: /sealed-secrets(/|$)(.*)
            pathType: Prefix

现在连接到应用程序并显示预期的页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74150580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档