【问题标题】:Another nginx ingress rewrite-target problem另一个 nginx 入口重写目标问题
【发布时间】:2020-07-25 20:56:51
【问题描述】:

我有一个服务和一个带有 kubenetes nginx 入口控制器的入口资源。我希望我的 url 的 /student 路径转到应用程序的根目录并匹配 student 之后的任何其他 url 段。

例如:http://example.com/student/ver 应该匹配我的应用程序的/ver 路由。

但是,我的入口总是以 /student url 路径作为其他 url 段前缀的应用程序。如果我调用 http://example.com/student/ver,我的应用程序会被相同的 url (student/ver) 访问。

我的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: ingress-resource
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: lesson-streaming
          servicePort: 80
        path: /student

我花了几天时间,但一次没有成功。


编辑:

入口更改为以下 - 不是我的请求说http 404

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /$2
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: ingress-resource
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: lesson-streaming
          servicePort: 80
        path: /student(/|$)(.*)

【问题讨论】:

标签: node.js nginx kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

您可以按照link正确使用rewrite-target注解并保持右键nginx.ingress.kubernetes.io/rewrite-target

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)

【讨论】:

    猜你喜欢
    • 2018-05-29
    • 2020-08-17
    • 1970-01-01
    • 2020-10-13
    • 2018-11-16
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多