如何解决仅将 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 举报,一经查实,本站将立刻删除。