在nginx配置中调用外部C代码来设置缓存键。

问题:

我想使用nginx响应缓存和FastCGI缓存。但是我需要通过来自cookie的值设置缓存键。问题是在我可以获取其值以在缓存键中使用之前,需要对cookie进行解密。

我了解:

我知道如何配置nginx作为缓存。我也知道可以在缓存键中设置和使用自定义变量。但是,我不知道如何调用自定义函数来解密cookie。我知道nginx具有模块的概念。我还注意到与Lua的集成。

问题:

如果我的解密代码可用作C代码,那么我可以从nginx配置中访问此外部代码并使用其返回值吗?

点赞
用户204011
用户204011

Lua模块确实可以在使用LuaJIT编译时帮助你。

查看此处的一个简单示例,了解如何与cookies交互:http://mailman.nginx.org/pipermail/nginx/2011-January/024798.html

现在使用LuaJIT,您可以使用FFI调用C解密代码:http://luajit.org/ext_ffi.html

另一个可能性是全部使用C完成,这可能更快,但可能需要更多的工作。

2012-12-11 11:51:59
用户1597813
用户1597813

只要你的代码是用 C 写的,最简单的方法就是编写一个简单的 nginx 模块,该模块提供一个包含解密后值的变量。可以在ngx_http_secure_link_module中找到提供变量的相对简单的示例。

2012-12-12 22:32:18