2

这可能在ServerFault上提供更好的服务,但是,我正在评估 nginx 以确定它是否能够解决特定问题。

问题

我想将 nginx 响应缓存与 FastCGI 缓存一起使用。但我需要使用 cookie 中的值设置缓存键。问题是 cookie 需要先被解密,然后我才能获得在缓存键中使用它的值。

我知道的

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

问题

如果我的解密可以作为 C 代码使用,我可以从 nginx 配置访问这个外部代码并使用它的返回值吗?

4

2 回答 2

1

只要您的代码是 C 语言,最简单的解决方案就是编写简单的 nginx 模块,该模块提供一个具有解密值的变量。可以在ngx_http_secure_link_module中找到如何提供变量的相对简单的示例。

于 2012-12-12T22:32:18.637 回答
0

如果使用 LuaJIT 编译 Lua 模块,它确实可以帮助您。

在这里查看如何与 cookie 交互的简单示例:http: //mailman.nginx.org/pipermail/nginx/2011-January/024798.html

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

另一种可能性是在 C 中完成这一切,这可能会更快,但可能会做更多的工作。

于 2012-12-11T11:51:59.817 回答