Hello Niklas, On Thu, May 23, 2019 at 07:54:46PM +0200, Niklas Keller wrote: > > > I'd like to propose falling back to round robin if the hash key is > > > empty. This allows using hashed cookie values for sticky sessions > > > while using round robin for all requests that do not carry any session > > > information and thus do not need the stickiness. While Nginx Plus > > > allows to use the learning mode, this patch avoids the need for > > > synchronization between multiple instances. > > > > > > > Can you please elaborate on balancing/sticky scheme you are using? > > > > Say, first request without cookie is balanced by round-robin, arrives > > at some backend, which responds with cookie. > > Next time, the request with cookie is balanced by hash algorithm, > > and the result can be easily another backend. How do you deal with this? > > Very few requests depend on the stickiness in our application. The > main use case is showing success messages once after a form is > submitted. > > In these cases, the usual flow is: > - GET /form → Server assigns cookie > - POST /form → Client sends cookie, a different server might be > selected, but doesn't matter > - GET /form?_key=abc → Client sends cookie again, success message is > shown and removed from the session, same server as in the previous > request is selected > > For cookie-less clients, e.g. crawlers and webhooks, the stickiness > doesn't matter at all, so these shouldn't be sticky to avoid peaks on > single backend nodes. > > @Roman: Patch looks good to me, thanks!
Committed, thanks. https://hg.nginx.org/nginx/rev/d964b0aee8e7 -- Roman Arutyunyan _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel