Rewrite lookup via MySQL table

agentzh agentzh at gmail.com
Tue Aug 24 08:03:11 MSD 2010


On Tue, Aug 24, 2010 at 11:32 AM, agentzh <agentzh at gmail.com> wrote:
>
>        location /conv-uid {
>            internal;
>            content_by_lua_file 'html/foo.lua';
>        }
>

Sorry, forgot to paste the contents of my html/foo.lua here, and it's
the essential glue:

    -- foo.lua
    local yajl = require('yajl')
    local seo_uri = ngx.var.my_uri
    local res = ngx.location.capture('/conv-mysql?' .. seo_uri)
    if (res.status ~= ngx.HTTP_OK) then
        ngx.throw_error(res.status)
    end
    res = yajl.to_value(res.body)
    if (not res or not res[1] or not res[1].url) then
        ngx.throw_error(ngx.HTTP_INTERNAL_SERVER_ERROR)
    end
    ngx.var.my_uri = res[1].url;

This piece of Lua code is mostly self-explanatory if you do know a little Lua ;)

Tests have shown that enabling LuaJIT 2.0 here won't make things
noticeably faster because we do not have enough Lua for JIT'ing ;)

Have fun!
-agentzh



More information about the nginx mailing list