c - 通过在 nginx 配置中调用外部 C 代码来设置缓存键

标签 c nginx lua

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

问题

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

我所知道的

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

问题

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

最佳答案

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

关于c - 通过在 nginx 配置中调用外部 C 代码来设置缓存键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751210/

相关文章:

LuaJIT 和 Rocks?

c++ - 在 C(也许是 C++)中寻找数值/多媒体/信号处理基准

c - 基于 C 中另一个字符数组的奇怪长度和内容

c - 在 C/UNIX 中扫描内存

angular - nginx Angular : 8. 0.2 路由上的 404 Not Found 错误

nginx - 仅将 URI 中的第一个路径元素与 CGI 可执行文件相匹配的正确 nginx 位置规则是什么?

node.js - Lua从Nodejs获取参数

lua - 将 luasocket 添加到自带 lua 环境的程序(bizhawk)中

c - 后台运行程序

node.js - 无法将 Node Restify 应用程序部署到 AWS EB