Есть ли лучшая практика для реализации правила входа с перезаписью в root - PullRequest
0 голосов
/ 25 октября 2019

Например, у меня есть правило (https://kubernetes.github.io/ingress-nginx/examples/rewrite/):

apiVersion: extensions/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(/|$)(.*)

Так что все, что идет к rewrite.bar.com/something, перейдет к http-svc/. И если http-svc ответит в другом месте, например /static будет перенаправление на rewrite.bar.com/static и здесь - 404. Интересно, есть ли какое-то простое и понятное решение для исправления таких ситуаций, не попросив разработчика реализовать переменную proxy_path или что-то в этом роде?

Пробовал Сделать ссылки в ответе относительно нового пути

1 Ответ

1 голос
/ 26 октября 2019

Измените аннотацию перезаписи на 1 доллар. Обратите внимание, я также изменил путь регулярных выражений. Это должно сделать это.

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