我有关于url路径的问题。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: backend
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /v1/$1
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- backend.example.com
secretName: backend-example-com
rules:
- host: backend.example.com
http:
paths:
- path: /v9/anonymous/set-data/?(.*)
backend:
serviceName: backend2
servicePort: 80
- path: /v9/?(.*)
backend:
serviceName: backend1
servicePort: 80在服役中我得到了
/v1/但我应该得到
/v1/anonymous/set-data/foo/bar/我需要重写/v1/路径中的所有版本,一些请求应该转到backend1,但一些特定路径应该转到backend2
发布于 2020-09-26 12:16:37
找到解决方案
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: backend
annotations:
# nginx.ingress.kubernetes.io/rewrite-target: /v1/$1
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/v9/?(.*)$ /v1/$1 break;
spec:
tls:
- hosts:
- backend.example.com
secretName: backend-example-com
rules:
- host: backend.example.com
http:
paths:
- path: /v9/anonymous/set-data/?(.*)
backend:
serviceName: backend2
servicePort: 80
- path: /v9/?(.*)
backend:
serviceName: backend1
servicePort: 80所有内容都重写为/v1/并正常工作
https://stackoverflow.com/questions/64065563
复制相似问题