ServerFault可能会更好,但是,我正在评估nginx以确定它是否能够解决特定问题。
我想在FastCGI Cache中使用nginx响应缓存。但我需要使用cookie中的值设置缓存键。问题是在我获取值以在缓存键中使用cookie之前,需要解密cookie。
我知道如何将nginx配置为缓存(fastcgi_cache
)。我也知道我可以在缓存键(fastcgi_cache_key
)中设置和使用自定义变量。但是,我不知道如何调用自定义函数来解密cookie。我知道nginx有模块的概念。我也注意到与Lua的整合。
如果我的解密可以作为C代码使用,我可以从nginx配置访问此外部代码并使用其返回值吗?
答案 0 :(得分:0)
如果使用LuaJIT编译它,Lua模块确实可以帮助你。
点击此处查看如何与Cookie进行互动的简单示例:http://mailman.nginx.org/pipermail/nginx/2011-January/024798.html
现在使用LuaJIT,您可以使用FFI来调用您的C解密代码:http://luajit.org/ext_ffi.html
另一种可能性是在C中完成所有操作,这可能会更快,但可能会更多工作。
答案 1 :(得分:0)
只要您的代码在C中,最简单的解决方案就是编写简单的nginx模块,该模块提供带有解密值的变量。可以在ngx_http_secure_link_module中找到如何提供变量的相对简单的示例。