Routing to a certain worker
Maxim Dounin
mdounin at mdounin.ru
Mon Jul 23 19:15:06 UTC 2018
Hello!
On Mon, Jul 23, 2018 at 01:53:21PM -0400, M.P. Ardhanareeswaran wrote:
> I understand the desire for worker processes to be symmetric.
>
> ProxyPass and upstream allow sticky session/session affinity
> which does introduce some skew though mighty useful IMHO.
>
> Do you have any thoughts about use of this?
>
> I am very new to handler development in NGINX. It appears that
> the handlers cannot do this and is heavily discouraged.
Normally, if a module needs some information to be shared between
worker processes, it uses shared memory zones:
http://nginx.org/en/docs/dev/development_guide.html#shared_memory
Sticky sessions use shared memory and therefore do not introduce
any inequalities between worker processes. Many other modules,
such as limit_conn and limit_req, do the same.
Unfortunately, your particular case as you've described it is
different, as you are trying to open a database connection and
keep it open for future requests. Unless a connection is statless
and can be re-opened on demand, this is won't be something
possible to implement within nginx worker model, because there are
no mechanisms to share connections between worker processes.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx-devel
mailing list