Re: 回复: Re: How to bind variable with connection in a customized module?
Liu Haifeng
haifeng.813 at gmail.com
Wed Jan 23 03:08:18 UTC 2013
Thank you again. Last mail was sent from my mobile phone(android). Sorry for the trouble.
Proxied connection is not a big problem for me for now. But good note, I'll think about it in the future.
On Jan 22, 2013, at 10:16 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> Hello!
>
> (Just a side note: it looks like you mail client have problems
> with proper mail encoding. I have to recover message headers by
> hand, as the Subject header was split across multiple
> non-consecutive lines, breaking other headers as well.)
>
> On Tue, Jan 22, 2013 at 05:33:31AM -0800, Haifeng Liu wrote:
>
>> Thank you very much. And for your note, I know the connections
>> are reusable, it's not a problem for me. To be sure, during a
>> client is alive, the connection won't serve other clients, is it
>> correct?
>
> This depends on what do you mean by "client". If next hop http
> client - true, the connection is always with one client. But on
> the same connection request from different users might appear,
> e.g. if requests are proxied via the same proxy server ("client"
> from nginx point of view).
>
> It might be helpfull to read this section of RFC2616 for better
> understanding:
>
> http://tools.ietf.org/html/rfc2616#section-1.4
>
>>
>> Maxim Dounin <mdounin at mdounin.ru>编写:
>>
>>
>> Hello!
>>
>> On Tue, Jan 22, 2013 at 08:16:36PM +0800, Liu Haifeng 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 nginx-devel@ 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 Dounin
>> http://nginx.com/support.html
>>
>> _______________________________________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>
> --
> Maxim Dounin
> http://nginx.com/support.html
More information about the nginx
mailing list