Nginx Module Concurrency Query
mdounin at mdounin.ru
Fri Jul 1 18:07:54 MSD 2011
On Fri, Jul 01, 2011 at 09:40:20AM -0400, Danny Glover wrote:
> I have been trying to get a simple nginx_module working. I referred
> http://www.evanmiller.org/nginx-modules-guide.html and found it very
> The module takes "http://10.90.50.31:1257/hello?w=lelj&ljd=22112" and
> sleeps for few sec and simply prints the URI.
> Here is the code :-
> The response time was 11376ms, 7587ms, 3804ms for 30, 20, 10 concurrency
> I am not sure what I am missing.
> Can someone please guide me on how do I make this module scale?
The behaviour you see is expected: you can't sleep as it will
block all requests in a worker process. Welcome to event-based
You have to arm timer and return back to event loop, then continue
processing once event fires. You may take a look how to do this
in standard limit_req module, though it will require some adaption
for handler module. In particular, you'll have to return NGX_DONE
and then finalize request yourself, much like it's done when
reading request body.
More information about the nginx