[ANN] ngx_lua v0.1.5: ability to capture multiple parallel subrequests

Roman Vasilyev roman at anchorfree.com
Fri Feb 11 01:38:36 MSK 2011


I've updated on one of my production servers mod-lua to 0.1.5, and nginx 
memory still growing.
My config is still the same
             location / {
                     include forward_proxy.conf;

                     location = /check-spam {
                             internal;

                             include spam_fastcgi.conf;
                     }

                     lua_need_request_body on;

                     rewrite_by_lua '
                       if ngx.var.request_method ~= "POST" then
                         return
                       end
                       local res = ngx.location.capture( "/check-spam", 
{ method = ngx.HTTP_POST, body = ngx.var.request_body })
                       local a=string.sub(res.body,0,4)=="SPAM"
                       if a then
                         return ngx.redirect("/terms-of-use.html")
                       end';
             }


2011/02/10 12:36:00 [alert] 3090#0: *21747555 zero size buf in output 
t:1 r:0 f:0 0000000006D42970 0000000006D42970-0000000006D42970 
0000000000000000 0-0 while sending request to upstream, client: 
10.1.24.20, server: hss, request: "POST /xxx/xxx.aspx HTTP/1.1", 
upstream: "http://x.x.x.x/xxx/xxx.aspx", host: "xxx.com"
2011/02/10 12:36:07 [alert] 3085#0: *21749071 sendfile() failed (9: Bad 
file descriptor) while sending request to upstream, client: 10.1.16.17, 
server: hss, request: "POST /xxx/xxx.aspx HTTP/1.1", upstream: 
"http://x.x.x.x/xxx/xxx.aspx", host: "xxx.com"

On 02/10/2011 02:36 AM, agentzh wrote:
> On Thu, Feb 10, 2011 at 6:26 PM, Alexander Kunz<akunz at ntmedia.de>  wrote:
>    
>> Thanks for sharing so many of your Nginx addons, Nginx scripting is so
>> exciting. I read
>> your 2 slides about Nginx scripting. Very intersting, are there some more
>> examples or informations
>> about Nginx scripting?
>>
>>      
> Maybe my blog count? ;)
>
>      http://agentzh.blogspot.com/
>
> I do have the plan of writing a bunch of (detailed) tutorials on this this year.
>
>    
>> I try out your example, you subrequest on a redis location. I use the redis2
>> addon, but i
>> allways get in the first line the bytes for my redis request. Is there a
>> solution hide this information?
>>      
> The ngx_redis2 module returns the raw TCP response from the redis
> server. It's recommended to use my lua-redis-parser module (written in
> pure C) to parse these responses into lua data structure:
>
>      https://github.com/agentzh/lua-redis-parser
>
> If you only want to use the "get" redis command, you can try out the
> ngx_redis module here:
>
>      http://wiki.nginx.org/HttpRedis
>
> It returns the parsed content part of the redis response because only
> "get" is needed to implement.
>
>    
>> So it would be possible to use redis2 for caching whole HTML pages.
>>
>>      
> Right, using ngx_srcache + ngx_lua + lua-redis-parser. See ngx_srcache
> for details:
>
>      http://github.com/agentzh/srcache-nginx-module
>
> It's much like Apache2's mod_cache, but only support silly response
> body caching (for now) and is 100% non-blocking. I're already using
> ngx_srcache + ngx_memc to cache responses via memcached in production.
>
>    
>> Have a nice day agentzh!
>>
>>      
> Thanks! :) The same to you ;)
>
> Cheers,
> -agentzh
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>    




More information about the nginx mailing list