[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