Ingress session-cookie-path setting regular express in Ingress Session Cookie; resulting in user logout

5/25/2020

I have created an ingress controller configuration with following path definitions:

paths:
   - path: (USA)/my-app/(.*)$
     ...............
   - path: (UK)/my-app/(.*)$

The problem happening here is when I don't set the following annotation;

nginx.ingress.kubernetes.io/session-cookie-path

I get regular expression in INGRESSCOOKIE path as:

cookie-name: INGRESSCOOKIE --------cookie-path: /(USA)/my-app/(.*)$

This is coming from the given path i.e. /(USA)/my-app/(.*)$.

As a result this response cookie from Ingress doesn't go back to Ingress for any subsequent request for http://USA/my-app/?id=1. (as HTTP request path differs from path in INGRESSCOOKIE)

And because of this HTTP request at times hit a different upstream server and user logs out; as session id in request is generated by a different server managed through the same load balancer.

I then tried setting annotation as:

nginx.ingress.kubernetes.io/session-cookie-path= /$1/my-app

But $1 doesn't actually resolve here; probably we cant give expressions in session-cookie-path.

Is there anything I am not doing in a right way here? Or, I should try something else to achieve session affinity.

Thanks

-- Jaraws
kubernetes
kubernetes-ingress
nginx-config
nginx-ingress

0 Answers