微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅将 POST 重定向到 nginx 入口

如何解决仅将 POST 重定向到 nginx 入口

我目前遇到了一个问题,我只想将 POST 重定向Nginx 入口中的特定路径。此 POST 重定向应仅用于 /log,但不能用于捕获 /login。如果我点击 /log 我不应该被重定向。这是我目前为我们的入口所拥有的。我正在考虑使用 CORS,但它在我的测试中似乎不起作用..

apiVersion: networking.k8s.io/v1
kind: Ingress
Metadata:
  name: client-log-forwarder-ingress
  labels:
    app.kubernetes.io/name: {{ .Values.service }}
    app.kubernetes.io/version: {{ .Chart.AppVersion }}
    app.kubernetes.io/component: frontend
    app.kubernetes.io/part-of: {{ .Values.partOf | default .Values.service }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
  annotations:
    kubernetes.io/ingress.class: {{ .Values.ingress.ingressClass }}
    Nginx.ingress.kubernetes.io/proxy-read-timeout: 60s
    Nginx.ingress.kubernetes.io/proxy-send-timeout: 60s
    Nginx.ingress.kubernetes.io/proxy-connect-timeout: 60s
    Nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    Nginx.ingress.kubernetes.io/rewrite-target: {{ .Values.logging.sumoRoute | quote }}
    Nginx.ingress.kubernetes.io/cors-allow-methods: "POST"
    Nginx.ingress.kubernetes.io/enable-cors: "true"
spec:
  # ingressClassName: {{ .Values.ingress.ingressClass }}
  tls:
  - hosts:
    - {{ .Values.ingress.hostname | quote }}
    secretName: {{ .Values.ingress.ssl | quote }}
  rules:
  - host: {{ .Values.ingress.hostname  }}
    http:
      paths:
      - path: /log$
        pathType: Prefix
        backend:
          service:
            name: sumo-logging-endpoint-service
            port:
              number: 443
{{ end }}

解决方法

您必须将 pathType 更改为 Exact。看看documentation

Exact:准确匹配 URL 路径并区分大小写。

在这种情况下,您还需要从我们的路径中删除 $,因为 pathType: Exact 也会尝试将其匹配为文字 $。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。