How to bind variable with connection in a customized module?

hi all,

I want save state during a long connection (keep-alive) for performance
optimization in my own HTTP handler module, thus I can peek up the saved
state when handling requests, to speed up response. Actually it’s quite
like session concept. I saw request struct has a member ctx, but what I
want is a ctx on the connection. It seems no way to save any customized
variable to the ngx_connection_t structure. What’s the suggested way to
make this if I don’t want the client hold something like session_id?

Hello!

On Tue, Jan 22, 2013 at 08:16:36PM +0800, Liu H. wrote:

hi all,

I want save state during a long connection (keep-alive) for
performance optimization in my own HTTP handler module, thus I
can peek up the saved state when handling requests, to speed up
response. Actually it’s quite like session concept. I saw
request struct has a member ctx, but what I want is a ctx on the
connection. It seems no way to save any customized variable to
the ngx_connection_t structure. What’s the suggested way to make
this if I don’t want the client hold something like session_id?

This was recently discussed on [email protected] mailing list, and
probably the best way currently available is to install connection
pool cleanup handler with custom data and then iterate over
connection pool cleanup handlers to find your data. It is
relatively costly, but allows to keep memory footprint from
keepalive connections low and still allows modules to keep their
per-connection data in rare cases when they really need to.

See here:
http://mailman.nginx.org/pipermail/nginx-devel/2012-December/003049.html

Note well though, that HTTP is stateless protocol, and the fact
that request came from the same connection means mostly nothing:
it might be a request from a completely different user.


Maxim D.
http://nginx.com/support.html

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs