описание:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ .Release.Name }}
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: some.domain
http:
paths:
- path: /
backend:
serviceName: {{ .Release.Name }}
servicePort: 80
То curl на http://some.domain/api/v1/health отвечает корректно.
Но нужно сделать http://some.domain/open-data/lk/api/v1/health.
Делаю такое описание:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ .Release.Name }}
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: some.domain
http:
paths:
- path: /open-data/lk(.*)
backend:
serviceName: {{ .Release.Name }}
servicePort: 80
curl на http://some.domain/open-data/lk/api/v1/health возвращает 404.
curl на http://some.domain/api/v1/health тоже 404.
Что делаю не так?
А если так? apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: {{ .Release.Name }} annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: rules: - host: some.domain http: paths: - path: /open-data/lk(/|$)(.*) backend: serviceName: {{ .Release.Name }} servicePort: 80
Надо было использовать nginx.org/rewrites: "serviceName={{ .Release.Name }} rewrite=/; вместо nginx.ingress.kubernetes.io/rewrite-target: /$1.
Обсуждают сегодня