Я создал конфигурацию контроллера входящего трафика со следующими определениями пути:
paths:
- path: (USA)/my-app/(.*)$
...............
- path: (UK)/my-app/(.*)$
Проблема здесь в том, что я не устанавливаю следующую аннотацию;
nginx.ingress.kubernetes.io/session-cookie-path
Я получаю регулярное выражение в INGRESSCOOK IE path как:
cookie-name: INGRESSCOOKIE --------cookie-path: /(USA)/my-app/(.*)$
Это исходит из заданного пути, т.е. /(USA)/my-app/(.*)$.
Как результат этот ответ Cook ie из Ingress не go обратно в Ingress для любого последующего запроса http://USA/my-app/?id=1. (поскольку путь HTTP-запроса отличается от пути в INGRESSCOOK IE)
И из-за этого HTTP-запроса иногда попадает на другой вышестоящий сервер, и пользователь выходит из системы; поскольку идентификатор сеанса в запросе генерируется другим сервером, управляемым с помощью того же балансировщика нагрузки.
Затем я попытался установить аннотацию как:
nginx.ingress.kubernetes.io/session-cookie-path= /$1/my-app
Но на самом деле $ 1 здесь не разрешается; вероятно, мы не можем задавать выражения в session-cook ie -path.
Есть ли что-то, что я здесь делаю неправильно? Или я должен попробовать что-нибудь еще, чтобы добиться привязки сеанса.
Спасибо